我的Yii2表单包含表单字段,具体取决于页面的操作.防爆.创建操作时会显示很少的字段,更新操作时会显示很少的字段.我想根据这种情况添加所需的验证.
防爆.
<?= $form->field($model,'unique_identifier')->textInput(['maxlength' => 45]) ?>
我只在action =>时显示此字段“更新”.
现在我想为此添加所需的验证,我试过这个:
[['unique_identifier'],'required','on' => 'update'],
但以上验证不起作用.如果我删除on =>更新,则在创建和更新方案上进行验证.
任何帮助,将不胜感激.
更新或创建项目时,ActiveRecord不会自动设置方案.您必须覆盖模型中的update()方法并设置所需的方案.例如.在你的情况下
原文链接:https://www.f2er.com/php/130817.htmlpublic function update($runValidation = true,$attributeNames = null) { $this->scenario = 'update'; return parent::update($runValidation,$attributeNames); }
您还可以在actionUpdate中设置方案
public function actionUpdate($id) { $model = $this->findModel($id); $model->scenario = 'update'; //load data from request,save model etc. }