首页 > 解决方案 > Yii2:如何在 $model 之外发送数据?

问题描述

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

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

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

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

标签: model-view-controllermodelyii2hidden-field

解决方案


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

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 */ 
}

推荐阅读