Ошибки проверки модели Cakephp 1.3 - PullRequest
1 голос
/ 07 мая 2011

Я делаю некоторую базовую проверку модели для пользовательской модели, но, к сожалению, проверка работает неправильно.

Это мои ошибки:

  1. Если "требуется"используется, сообщение об ошибке всегда появляется
  2. Если «обязательный» не используется, сообщение об ошибке не появляется, даже если введена неверная переменная (т. е. вводится буква A для имени.
  3. Email проверяется на"name-gmail.com", который явно не является электронным письмом

ПОМОЩЬ! ПОЖАЛУЙСТА!

Вот моя валидная переменная в моей модели:

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 голосов
/ 11 мая 2011

Посмотрите на документы . Я не уверен, что проверка электронной почты не удалась. Если вы хотите «лучшую» проверку, попробуйте:

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