Yii rules()匹配失败

时间:2013-05-06 04:31:01

标签: yii validationrules

我有一个正常工作的注册/更新模型,我想扩展我的模型,所以我在密码字段中添加了一个正则表达式。我已经在线检查了正则表达式,甚至我的客户端验证显示它有效,但模型现在拒绝保存。我不确定为什么,有人可以帮帮我吗?

        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'),

    );

谢谢

强尼

1 个答案:

答案 0 :(得分:2)

您可以创建自己的验证规则。

  

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'),
);

您可以在模型中指定更多验证。