在编辑案例Yii2中应用不同的验证规则

时间:2015-12-17 10:21:06

标签: validation yii2

在Yii2中我们使用public function rules() { }进行验证,在视图中我们使用$model->isNewRecord作为检查模式,我想在规则函数中检查模式。我试过$this->isNewRecord,但它没有用。

1 个答案:

答案 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'],
    ];
}

}