2016-05-04 39 views
1

我想在編輯場景中驗證我的表單,如果CandidateResumeName未填充,我想要求此字段。這是我正在嘗試的方式,但它不起作用。在yii2中使用場景的條件驗證

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

請幫忙!

+2

所需的驗證都已經檢查空值。 – Alex

+0

我想檢查$ model-> HRMS_CandidateResumeName爲空 – Piyush

+0

您是否已經設置了'edit'場景? –

回答

0

您應該刪除內陣列

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

記住定義和設置edit情況適當

0

您的規則應該是這樣的

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

自定義情景:

在你的模型

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

控制器

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