【问题标题】:Yii2: How to send data outside of a $model?Yii2:如何在 $model 之外发送数据?
【发布时间】:2018-11-30 16:28:56
【问题描述】:

我使用 Yii2 使用此提交按钮从视图向其控制器发送具有一个模型的表单:

<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>

还需要在按下按钮时向控制器发送一个布尔变量,但我不知道如何将它包含在模型的外部

我可以定义一个 Html::hiddenInput() 来解决它,但它会将新的隐藏字段包含到 $model 中。

【问题讨论】:

  • 我不明白你到底需要什么。按下按钮时的布尔值?您可以从按钮传递一个值,在此处阅读更多内容stackoverflow.com/questions/38496710/…
  • 不清楚你在问什么,你能描述一下你需要传递这个boolean值的实际场景吗?并且在表单中包含隐藏输入不需要在模型中添加或定义任何内容,除非它是 activeHiddenInput()

标签: model-view-controller model yii2 hidden-field


【解决方案1】:

据我了解,您需要知道用户何时按下提交按钮,因此您必须为提交按钮设置 name 属性。您可以在选项中设置该属性。 您的问题示例

Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary','name'=>'submit-btn','value'=>($model->isNewRecord? 'create' : 'update')])

有关更多信息,请阅读此链接 submitButtonsubmitInput

对于控制器中的处理请求,请使用 Yii::$app->request->post():

例子:

$post = Yii::$app->request->post();
if(isset($post['submit-btn']) && ($post['submit-btn'] == 'create')){
       /** Your Code */ 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多