情景:我在验证规则里写了手机号码唯一,同时ajax验证也开启了,但是只有其他的验证能在ajax验证(比如手机号码格式,密码位数或者两次密码时候一致等等,只有这个唯一值没法ajax验证o(╯□╰)o)。
rules代码
public function rules()
{
return [
[['password','re_password','new_password'], 'string','min'=>6, 'max' => 16,'message'=>'{attribute}位数为6至16位'],
[['phone'], 'unique','message'=>'{attribute}已经被占用了'],
['phone','match','pattern'=>'/^1[0-9]{10}$/','message'=>'{attribute}必须为1开头的11位纯数字'],
[['phone','password'],'required','on'=>'login','message'=>'{attribute}不能为空'],
['re_password','compare','compareAttribute'=>'password','message'=>'两次密码不一致'],
];
}
难道本屌还得自己写js代码?
应用程序初始化的用户名唯一验证的代码如下:['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '此用户名已经被使用。'],
应该加上targetClass。
对于验证,yii是不是按照那个rules里面数组从上往下的顺序验证的? 如果某个字段未验证通过,后面的字段就不会验证了,是这样?
因为可能需求,比如我的手机验证通过后,才能验证该手机所发的验证码是否正确?如果手机都不正确,验证手机发送的验证码是否正确就会出问题!