Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定于场景的Yii2验证规则_Yii2 - Fatal编程技术网

特定于场景的Yii2验证规则

特定于场景的Yii2验证规则,yii2,Yii2,我有以下规则和场景 public function rules(){ return [ [['name','email','password'],'required'], ['email','myvalidation'], ['email','email'], [['name', 'email', 'password'], 'required', 'on' => 'registe

我有以下规则和场景

public function rules(){
        return [
            [['name','email','password'],'required'],
            ['email','myvalidation'],
            ['email','email'],
            [['name', 'email', 'password'], 'required', 'on' => 'register'],
            ];
    }




public function scenarios()
    {
        $scenarios = parent::scenarios();
        $scenarios['login'] = ['name','password','email'];//Scenario Values Only Accepted
        return $scenarios;
    }
我希望
规则
“myvalidation”仅适用于
登录
场景,而不适用于其他情况。如何在
Yii2
中实现这一点?

只需在此验证规则中指定属性:

['email', 'myvalidation', 'on' => 'login'],
请记住,您也可以使用“except”。例如:

    public function rules()
        {
            return [
                [['first_name', 'email', 'phone', 'password'], 'required', 'except' => 'changepassword'],
                [['password'], 'required', 'on' => 'changepassword']
]}

这是什么?这是一个场景。该规则仅在设置该场景时适用:)