在Yii2中我们使用public function rules() { }
进行验证,在视图中我们使用$model->isNewRecord
作为检查模式,我想在规则函数中检查模式。我试过$this->isNewRecord
,但它没有用。
答案 0 :(得分:2)
您可以使用方案实施不同的验证规则。
在控制器中,您可以在同一操作中针对不同操作或不同条件设置不同的方案。
public function actionRegister(){
$model = new User;
$model->scenario = 'register';
}
然后,您可以将不同的验证规则应用于模型中的特定方案
class User extends ActiveRecord {
public function rules()
{
return [
// email required in "register" scenario
[['email'], 'required', 'on' => 'register'],
// email, password are required in "login" scenario
[['email', 'password'], 'required', 'on' => 'login'],
];
}
}