2015-10-29 30 views
0

我已經添加了多個驗證規則對於一個領域CakePHP的驗證調整

Array 
(
    [email] => Array 
    (
     [rule] => email 
     [message] => Please input a valid email address 
    ) 
    [notEmpty] => Array 
    (
     [rule] => notEmpty 
     [message] => This field is required 
    ) 

) 

我想,如果提起空,那麼錯誤應該是「這個字段是必須的」,如果其無效的郵件地址,然後「請輸入一個有效的電子郵件地址」。

我在這兩種情況下都收到了電子郵件地址錯誤。

在此先感謝

+0

嘗試切換兩條規則的順序。 – Holt

回答

1

你需要切換的驗證規則順序,以便它檢查notEmpty第一。正在發生的事情是,如果該字段爲空,則該字段將失效爲不是有效的電子郵件(因爲它不是),並且不會觸及第二個規則。

您也可以嘗試將'allowEmpty' => true添加到email規則中,因爲如果該字段爲空,這會跳過驗證規則,但最好確保您按照您希望/需要它們評估的順序排列規則(它使代碼更具可讀性)。

Array 
(
    [notEmpty] => Array 
    (
     [rule] => notEmpty 
     [message] => This field is required 
    ) 
    [email] => Array 
    (
     [rule] => email 
     [message] => Please input a valid email address 
     [allowEmpty] => true 
    ) 

)