我有一个正常工作的注册/更新模型,我想扩展我的模型,所以我在密码字段中添加了一个正则表达式。我已经在线检查了正则表达式,甚至我的客户端验证显示它有效,但模型现在拒绝保存。我不确定为什么,有人可以帮帮我吗?
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'),
);
谢谢
强尼
答案 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'),
);
您可以在模型中指定更多验证。