Правила Yii() не совпадают

У меня была рабочая модель регистрации/обновления, я хотел расширить свои модели, поэтому добавил регулярное выражение в поле пароля. Я проверил, что регулярное выражение работает в Интернете, и даже моя проверка на стороне клиента показывает, что оно работает, но модель отказывается сохраняться сейчас. Я не совсем уверен, почему, может ли кто-нибудь помочь мне, пожалуйста?

        return array(
        array('firstName, lastName, email, password', 'required'),
        array('firstName', 'length', 'max'=>45),
        array('lastName', 'length', 'max'=>80),
        array('email', 'length', 'max'=>120),
        // email must be valid email
        array('email', 'email'),    
        // email must be unique
        array('email', 'unique'),
        // Regex for password
        array('password','match', 'pattern'=>'/^[a-z0-9_-]{7,20}$/i', 
            'message'=>'The password must be between 7 and 20 characters
             long'),


        array('password', 'length', 'min'=>7, 'max'=>64),
        array('date_modified', 'safe'),
        array('active, date_modified', 'default', 'setOnEmpty' => true, 'value' => null),
        array('id, first_name, last_name, email, pass, active, date_created, date_modified, live', 'safe', 'on'=>'search'),

    );

Спасибо

Джонни


person Jonnny    schedule 06.05.2013    source источник
comment
Вы смотрели журналы yii на наличие ошибок? Вы пытались var_dump исправить ошибки модели: var_dump($model->errors);?   -  person soju    schedule 06.05.2013
comment
После более внимательного изучения проблема заключалась в моем методе beforeSave(). Спасибо за помощь, как всегда.   -  person Jonnny    schedule 25.07.2013


Ответы (1)


Вы можете создать собственное правило проверки.

http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/

Или же вы можете определить правило проверки в модели YII, например:

return array(
    array('password', 'length', 'min'=>7, 'max'=>64),
    array('password','pattern'=>'/^[A-Za-z0-9_!@#$%^&*()+=?.,]+$/u', 'message'=>'Spaces or given characters are not allowed'),
);

В вашей модели можно указать дополнительные проверки.

person Mohit Bhansali    schedule 06.05.2013