YiiFramework-模型规则声明上的代码冗余


YiiFramework - Code redundancy on model rule declaration

想问是否有一种方法可以将模型中的多个规则分组为1,这样我就可以减少代码量,尤其是在需要检查多个规则的同一属性的地方。。。以下是规则声明的方式。。。

            array (
                    'new_email_addr',
                    'email',
                    'on' => 'chngEmail'
            ),
            array (
                    'new_email_addr',
                    'required',
                    'on' => 'chngEmail'
            ),
            array (
                    'new_email_addr',
                    'sameEmail',
                    'on' => 'chngEmail'
            ),

正如您所看到的,属性new_email_addr在保存之前需要检查3条规则。。。我想要实现的是这样的事情,这样我就可以在一个部分完成所有事情。

            array (
                    'new_email_addr',
                    'required, email, sameEmail',
                    'on' => 'chngEmail'
            ),

有这样的可能性吗?

不,这是不可能的。您可以将多个字段、场景和异常分组在一起,但不能将多个验证器分组(有关示例,请参阅明确指南)。

唯一的解决办法是按照Samuel的建议,将所需的验证器组合起来创建自定义验证器。