Cakephp 验证调整

Cakephp Validation tweak

我为一个字段添加了多个验证规则

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

)

我想如果文件为空那么错误应该是 "This field is required" 如果它的邮件地址无效那么 "Please input a valid email address".

我在这两种情况下都收到电子邮件地址错误。

提前致谢

您需要切换验证规则的顺序,使其首先检查 notEmpty。发生的情况是,如果该字段为空,则该字段无效,因为它不是有效的电子邮件(因为它不是)并且没有达到第二条规则。

您也可以尝试将 'allowEmpty' => true 添加到 email 规则,因为如果字段为空,这将跳过验证规则,但最好确保您根据命令你 want/need 他们评估(它使代码更具可读性)。

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

)