蛋糕PHP验证(+;preg_match()-警告)
使用CakePHP2.0RC3 在我的模型中进行以下验证:蛋糕PHP验证(+;preg_match()-警告),php,cakephp,Php,Cakephp,使用CakePHP2.0RC3 在我的模型中进行以下验证: var $validate = array( 'loginname' => array( 'minCharactersRule' => array( 'rule' => array('minLength', 3), ), 'alphaNumericRule' => array(
var $validate = array(
'loginname' => array(
'minCharactersRule' => array(
'rule' => array('minLength', 3),
),
'alphaNumericRule' => array(
'rule' => 'alphaNumeric',
),
'uniqueRule' => array(
'rule' => 'isUnique',
),
'on' => 'create',
'required' => true,
'allowEmpty' => false,
),
'password' => array(
'minCharactersRule' => array(
'rule' => array('minLength', 5),
),
'required' => true,
'allowEmpty' => false,
),
'email' => array(
'emailRule' => array(
'rule' => array('email'),
),
'uniqueRule' => array(
'rule' => 'isUnique',
),
'required' => true,
'allowEmtpy' => false,
),
'display_name' => array(
'betweenRule' => array(
'rule' => array('between', 3, 20),
),
'uniqueRule' => array(
'rule' => 'isUnique',
),
'required' => true,
'allowEmpty' => false,
),
'registered' => array(
'rule' => array('date', 'ymd'),
'required' => false,
'allowEmpty' => false,
'on' => 'create'
),
'status' => array(
'rule' => 'numeric',
'required' => false,
'allowEmpty' => false,
'on' => 'create'
),
);
当我填写每个字段并提交时,我会收到“必需”的错误消息。。。
调试($this->Model->validationErrors)显示:
此外,还会出现一些丑陋的警告:
Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]
(4次)
当我第一次看到它时,我认为我键入了任何错误,但在检查了3-4次并得到相同的错误后,我决定来这里问:x
我遗漏了什么吗?没有想法了
nahri
required=>true
与验证规则notEmpty()
的含义不同required=>true
表示数组键必须存在-并不意味着它必须有值。因此,如果数据集中不存在该字段,验证将失败,但如果提交的值为空(“”)
,验证可能会成功(取决于规则)
因此,在您的案例中,您可以注释掉所有的
必需=>true
,所有这些都应该是好的。再次阅读烹饪书示例后,我找到了解决方案
每个规则都必须具有必需的、allowEmpty等参数,而不是字段本身
这对我来说毫无意义,但手册中就是这样描述的,它是如何工作的 我知道notEmpty和required之间的区别,并且字段存在于请求数据中,我对此进行了测试。一定是其他原因(preg_match()的警告原因?)我同意,无论“required”设置为什么,都不应该有任何警告。
Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE/Cake/Model/Model.php, line 2981]