Ошибки проверки модели Cakephp 1.3

#cakephp-1.3

#cakephp-1.3

Вопрос:

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

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

  1. Если используется «требуется», всегда появляется сообщение об ошибке
  2. Если «требуется» не используется, сообщения об ошибке не будет, даже если введена неправильная переменная (например: ввод буквы A для имени.
  3. Электронная почта проверяется на «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:

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

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