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

Validation 在编辑案例Yii2中应用不同的验证规则,validation,yii2,Validation,Yii2,在Yii2中,我们使用public function rules(){}进行验证,鉴于我们使用$model->isNewRecord进行检查模式,我想检查规则函数中的模式。我尝试了$this->isNewRecord,但它不起作用。使用场景实现不同的验证规则 在控制器中,您可以在不同的操作上或在同一操作中的不同条件下设置不同的场景 public function actionRegister(){ $model = new User; $model->scenario =

在Yii2中,我们使用
public function rules(){}
进行验证,鉴于我们使用
$model->isNewRecord
进行检查模式,我想检查规则函数中的模式。我尝试了
$this->isNewRecord
,但它不起作用。

使用场景实现不同的验证规则

在控制器中,您可以在不同的操作上或在同一操作中的不同条件下设置不同的场景

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

}

显示您的模型代码。.使用@Inaseskull建议的使用场景检查尝试阅读yii2的文档,您会得到所有东西。或者尝试我没有编辑它,我编辑了一个编辑以更正我在批准编辑时注意到的一些错误语法(“操作”和“条件”是单数)。我不知道是谁更改了动作名称。@MikeWise,别紧张,我将删除上面的评论。谢谢你的反馈。