模型层:
//场景
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