使用yii2中的场景进行条件验证

时间:2016-05-04 12:11:51

标签: forms validation yii2

我正在尝试在编辑方案中验证我的表单,如果CandidateResumeName未填写,我想要求此字段。这就是我的尝试方式,但它不起作用。

[['CandidateResumeName'], 'required', 'when' => function($model) {                              
                if($model->HRMS_CandidateResumeName == "")
                    return true;
                },'on' => 'edit'],  

请帮忙!

2 个答案:

答案 0 :(得分:0)

你应该删除内部数组

 ['CandidateResumeName', 'required', 'when' => function($model) {                              
            if($model->HRMS_CandidateResumeName == "")
                return true;
            },'on' => 'edit'],  

请记住正确定义和设置edit方案

答案 1 :(得分:0)

您的规则应如下所示

['CandidateResumeName', 'required', 'on' => 'edit'],

自定义场景:

在你的模特中

public function scenarios(){
        $scenarios = parent::scenarios();
        $scenarios['edit'] = ['CandidateResumeName'];
        return $scenarios;
    }

控制器

public function  actionCreate(){
  ---     
 $model->scenario = 'edit';
  ---
}