2014-09-22 48 views
1

想问我是否有一种方法可以将模型中的多个规则分组为1,以便我可以减少代码量,尤其是在需要检查相同属性的地方在多个规则......下面是如何,现在的规则声明...YiiFramework - 模型规则声明中的代码冗余

  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' 
      ), 

有没有这种可能性?

+1

您可以创建一个自定义验证规则,可以执行所有http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/ – 2014-09-22 13:59:24

回答

1

不,这是不可能的。您可以将几个字段,方案和例外组合在一起,但不能包含多个验证器(有关示例,请参阅the definite guide)。

唯一的出路就是按照Samuel的建议,创建自定义验证器,将想要的验证器组合起来。