Cakephp 1.3模型验证错误

时间:2011-05-07 07:47:19

标签: cakephp-1.3

我正在为用户模型进行一些基本的模型验证,但不幸的是,验证工作不正常。

这些是我的错误:

  1. 如果使用“required”,则始终显示错误消息
  2. 如果未使用“required”,即使输入了错误的变量也没有错误消息(即:输入字母A作为名称。
  3. 电子邮件正在验证“name-gmail.com”,这显然不是电子邮件
  4. HELP!请!

    这是我模型中的验证变量:

    var $validate = array(
        'name' => array(
            'length' => array(
               'rule' => array('minLength', 2),
               'message'   => 'Please enter your first name (more than 2 chars)',
               'required' => true,
            ),
        ),
        'username' => array(
            'length' => array(
                'rule'      => array('minLength', 5),
                'message'   => 'Must be more than 5 characters',
            ),
            'alphanum' => array(
                'rule'      => 'alphanumeric',
                'message'   => 'May only contain letters and numbers',
            ),
            'unique' => array(
                'rule'      => 'isUnique',
                'message'   => 'Already taken',
                'required' => true,
            ),
        ),
        'email' => array(
            'email' => array(
                'rule'      => 'email',
                'message'   => 'Must be a valid email address',
            ),
            'unique' => array(
                'rule'      => 'isUnique',
                'message'   => 'Already taken',
            ),
        ),
        'password' => array(
            'empty' => array(
                'rule'      => 'notEmpty',
                'message'   => 'Must not be blank',
                'required'  => true,
            ),
        ),
        'password_confirm' => array(
            'compare'    => array(
                'rule'      => array('password_match', 'password', true),
                'message'   => 'The password you entered does not match',
                'required'  => true,
            ),
            'length' => array(
                'rule'      => array('between', 6, 20),
                'message'   => 'Use between 6 and 20 characters',
            ),
            'empty' => array(
                'rule'      => 'notEmpty',
                'message'   => 'Must not be blank',
            ),
        ),
    );
    

1 个答案:

答案 0 :(得分:0)

看看the docs。我不确定电子邮件验证失败了。如果您想要“更好”验证,请尝试:

'email' => array(
    'rule' => array('email', true),
    'message' => 'Must be a valid email address'
)