首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定于场景的Yii2验证规则

特定于场景的Yii2验证规则
EN

Stack Overflow用户
提问于 2015-02-04 14:50:29
回答 2查看 18.5K关注 0票数 8

我有以下规则和场景

代码语言:javascript
复制
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;
    }

我希望rule 'myvalidation'只适用于login场景,而不适用于其他cases.How。这可以在Yii2中实现吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-04 16:30:37

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

代码语言:javascript
复制
['email', 'myvalidation', 'on' => 'login'],
票数 13
EN

Stack Overflow用户

发布于 2016-07-08 02:03:13

记住,你也可以使用"except“。在示例中:

代码语言:javascript
复制
    public function rules()
        {
            return [
                [['first_name', 'email', 'phone', 'password'], 'required', 'except' => 'changepassword'],
                [['password'], 'required', 'on' => 'changepassword']
]}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28315160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档