z108jiang
- z108jiang 2016-12-23 已签到连续签到1天,获得了5个金钱
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'=>'两次密码不一致'], ]; }
对于验证,yii是不是按照那个rules里面数组从上往下的顺序验证的? 如果某个字段未验证通过,后面的字段就不会验证了,是这样?
因为可能需求,比如我的手机验证通过后,才能验证该手机所发的验证码是否正确?如果手机都不正确,验证手机发送的验证码是否正确就会出问题!这个倒是个问题,只要没有判断语句,只要验证都应该是依次验证的,不管通没通过,但这个判断怎么写呢?
太感谢了!同样的问题找到答案了,还是舰长行!
为什么我执行$model->save();方法的时候,总是执行插入操作?比如我要进行更新操作,我先建了一个model ModifyForm.php,并在里面定义了相应的规则,model里面写了doModify这个方法,里面通过new Admin()这个数据表,并对要改变的值进行重新赋值,再执行save()方法,在控制器这端引用这个model,if($model->load(Yii::$app->request->post()) && $model->validate()){$user = $model->doModify($id);if($user){return $this->redirect(['user/index']);}}执行后直接是空白页。这是怎么回事呢?网上找了很多更新的方法,都不行。
new一个就是插入数据,::model就是update操作
你们讲了这么多,这个密码要加密的啊,那该怎么验证呢?其实这里还有一个两次验证的问题,一个是对比一下是不是一致,第二个是再将加密的密码存入数据库,这时SAVE同样也验证了一次,这时要注意两个PASSWORD是要一致的
- z108jiang 2016-11-28 已签到连续签到1天,获得了5个金钱