Yii2.0 ajax验证,验证码报错,load方法
来源:互联网 发布:淘宝土特产店铺介绍 编辑:程序博客网 时间:2024/06/03 20:27
Yii2.0刚上手,边学边用。简单说下自己的功能需求。
用户注册 字段:手机号码,验证码,密码,名字。验证用的model的rule验证,ajax验证。
问题1:手机号码唯一 不能重复…..
//验证属性 public function rules(){ return [ [['telnumber','verifyCode','password','name'],'required'], ['telnumber','match','pattern'=>'/^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/','message'=>'手机号码格式错误。'], ['telnumber','unique','targetClass'=>'\app\commands\models\Member','message'=>'该手机号码已经注册。'], ['password','string','min'=>6,'max'=>18], ['name','string','min'=>2,'max'=>6], ['verifyCode', 'captcha','captchaAction'=>'/member/captcha'], ]; }
这里需要注意的是要写明:targetClass对应到验证类的model。
From中的验证和提交url,我是分开写的。
<?php $form = ActiveForm::begin(['id' => 'righster-form','enableAjaxValidation' => true,'enableClientValidation' => true,'validationUrl'=>'checkreg']); ?>
单独指定了验证的url,对应的验证方法一定要有返回值,如果没有返回值没有结果响应
//用户注册检查 public function actionCheckreg() { if(Yii::$app->request->isAjax&&isset($_POST['ajax'])){ $model = new RegisterForm(); //给model填充数据 $model->load(Yii::$app->request->post()); //设置返回数据格式为json格式 Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $errors=\yii\bootstrap\ActiveForm::validate($model,array('telnumber','password','name')); if(sizeof($errors)>0){ return $errors; } return true; } }
上面的验证方法用的是Form的验证,因为如果用Model的验证将错误信息return的时候 因为id属性与form的无法对应 所以不能正常显示。ActiveForm::validate的验证我指定了验证字段,因为如果验证所有的,那验证码将会出问题,因为每次验证后都会生成新的验证码。思路就是这里的数据校验只验证手机号码 密码 名字。验证码的校验交给yii来做。
2.load方法的使用
post提交的数据load给Model,是数据model而不是form表单model。
如果直接将form表单load POST数据 会填充失败返回false。
原因:form表单过来的Post数据 input都带着前缀,所以与数据model的属性列名不一致 导致Load 失败。
解决:在load的时候 指定参数2为提交表单的前缀 就可以Load true了。
$member=new Member();$member->load(Yii::$app->request->post(),'RegisterForm');$member->login_ip=Yii::$app->request->getUserIp();$member->login_date=time();
一边学一边做,进度比较慢。边学变笔记+总结吧。不得不说YII 确实很强大。
1 0
- Yii2.0 ajax验证,验证码报错,load方法
- yii2->验证码问题(Yii2.0 ajax验证,验证码报错,load方法)
- Yii2 rules 验证方法
- yii2表单验证方法
- Yii2 ajax验证表单输入
- YII2验证
- yii2.0 ajax登陆验证失败验证码不自动刷新
- yii2.0给表单添加验证码的实现方法
- Yii2.0 rules [验证规则]
- Yii2.0 rules [验证规则]
- Yii2.0 使用验证码
- Yii2.0 验证码错误
- Yii2.0 rules验证规则
- Yii2.0 rules验证规则
- Yii2.0 添加验证码
- yii2 password hash生成与验证方法
- yii2 modal弹窗之ActiveForm ajax表单异步验证
- Yii2.0 rules验证规则大全
- 插入排序
- 解决java项目打jar包,项目中引用有其他jar包的问题
- print_r var_dump var_export输出区别
- 信号与信号量的区别
- Quartz作业调度
- Yii2.0 ajax验证,验证码报错,load方法
- 深度学习-归一化
- linux 查看php扩展
- 希尔排序
- Form表单上传图片获取不到其他值
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- Java 8 Streams map() 示例
- Tensorflow术语表
- undefined reference to