2014-09-22 39 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的建議,創建自定義驗證器,將想要的驗證器組合起來。