模型層:
//場景
const SCENARIO_CREATE = 'create';
public function rules(){
return [
[['username','mobile'], 'required']
[['email'], 'required', 'on' => self::SCENARIO_CREATE],
[['mobile'], function ($attribute){
if(!preg_match('/^1[3|4|5|6|7|8|9]\d{9}$/', $this->$attribute)){
$this->addError($attribute, '手機號碼格式有誤');
}
}],
];
}
控制器層:
public function actionCreate(){
$model = new createModel();
//設置場景 不設置代表默認場景
$model->setScenario(createModel::SCENARIO_CREATE);
//其他操作
}
rules中不加場景的是默認場景 創建場景下會加上默認場景的驗證 故創建場景下 驗證的是username,mobile,email