Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
蛋糕PHP验证(+;preg_match()-警告)_Php_Cakephp - Fatal编程技术网

蛋糕PHP验证(+;preg_match()-警告)

蛋糕PHP验证(+;preg_match()-警告),php,cakephp,Php,Cakephp,使用CakePHP2.0RC3 在我的模型中进行以下验证: var $validate = array( 'loginname' => array( 'minCharactersRule' => array( 'rule' => array('minLength', 3), ), 'alphaNumericRule' => array(

使用CakePHP2.0RC3

在我的模型中进行以下验证:

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]