在CakePHP验证中,如果我有另一个规则,如alphaNumeric和allowEmpty为false,我是否需要no



如果我有之类的验证规则

alphaNumeric' => array(
'rule' => array('alphaNumeric'),
'allowEmpty' => false),

有必要制定一个非空规则吗?据我所知,allowEmpty设置为false会认为空值违反了alphaNumeric规则,所以除了我想定义两个不同的错误消息之外,是否需要notEmpty规则?

(问这个问题的另一种方式是:除了提供一个我看不到的单独的自定义消息外,独立的notEmpty规则是否会提供或需要一些单独的功能?)


非常清楚:我理解notEmpty是一个独立规则的想法,其中allowEmpty是规则的一个属性。这不是我的问题。我的问题是,如果你已经有了alphaNumeric(或其他类似的)规则,你可以添加allowEmpty=false,那么添加notEmpty规则(除了它允许你为该规则提供的自定义消息)有什么必要或价值吗?除了独立的规则之外,规则和属性的作用有什么不同吗?

这实际上取决于您使用的"其他"规则。

您可以在CakePHP验证实用程序中看到每个规则实际检查的内容:

https://github.com/cakephp/cakephp/blob/44b7d013ae304a05699179bb4ea0077956c57e10/lib/Cake/Utility/Validation.php

例如,在该文件中,您可以看到字母数字检查:

public static function alphaNumeric($check) {
if (is_array($check)) {
extract(self::_defaults($check));
}
if (empty($check) && $check != '0') {
return false;
}
return self::_check($check, '/^[p{Ll}p{Lm}p{Lo}p{Lt}p{Lu}p{Nd}]+$/Du');
}

在字母数字的情况下,您可以看到它已经有一个空检查,所以您不应该还需要allowEmpty=>false规则。

最后,就您的观点而言,我认为将其作为一个单独的规则添加的唯一好处是,您可以向用户提供更好的错误消息

请阅读。。。http://book.cakephp.org/2.0/en/models/model-attributes.html

模型属性允许您设置可以覆盖默认模型行为和规则的属性。上下文是应用程序的业务逻辑。

你的问题的答案在下面的链接中:http://book.cakephp.org/2.0/en/models/data-validation.html#allowempty

事实上,你是绝对正确的,如果你有一个字段,你必须在其中应用多个验证,最终一个是nonEmpty。在这种情况下,你可以简单地使用allowEmpty=>false。但是,如果您的数据字段只需要对非空检查进行一次验证,那么在这种情况下,您应该使用nonEmpty来更好地理解您的代码!

我想我已经表明了我的观点。。。感谢

相关内容

最新更新