Yii2.0-advanced-5—添加重复密码和验证码
来源:互联网 发布:linux 激活网卡 编辑:程序博客网 时间:2024/05/18 00:43
添加重复密码和验证码:
打开/frontend/models/SignupForm.php
class SignupForm extends Model{ public $username; public $email; public $password; /** * @inheritdoc */ public function rules() { return [ ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'], ['username', 'string', 'min' => 2, 'max' => 255], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'], ['password', 'required'], ['password', 'string', 'min' => 6], ]; }
只需修改rules规则即可完美实现
a.添加用户字符限制,6-16位
['username', 'string', 'min' => 6, 'max' => 16],
输入限制:用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。
['username', 'match','pattern'=>'/^[(\x{4E00}-\x{9FA5})a-zA-Z]+[(\x{4E00}-\x{9FA5})a-zA-Z_\d]*$/u','message'=>'用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。'],
b.添加重复密码字段
public $repassword;
一般重复密码与密码的字段验证基本上是一致的,所以可以在password中添加repassword,并添加两次输入一致的限制
[['password','repassword'], 'required'],[['password','repassword'], 'string', 'min' => 6],['repassword', 'compare', 'compareAttribute' => 'password','message'=>'两次输入的密码不一致!'],
c.添加验证码字段
public $verifyCode;
验证码有自带的扩展,只需添加以下代码即可
['verifyCode', 'captcha'],
注意:需要在对应的控制器中添加以下代码,本例为SiteController中添加
public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], ]; }
修改之后的规则
class SignupForm extends Model{ public $username; public $email; public $password; public $repassword; public $verifyCode; public function rules() { return [ ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '该用户名已被使用!'], ['username', 'string', 'min' => 6, 'max' => 16], ['username', 'match','pattern'=>'/^[(\x{4E00}-\x{9FA5})a-zA-Z]+[(\x{4E00}-\x{9FA5})a-zA-Z_\d]*$/u','message'=>'用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。'], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => '该邮箱已经被注册!'], [['password','repassword'], 'required'], [['password','repassword'], 'string', 'min' => 6], ['repassword', 'compare', 'compareAttribute' => 'password','message'=>'两次输入的密码不一致!'], ['verifyCode', 'captcha'], ]; } ....
验证一下效果:
0 0
- Yii2.0-advanced-5—添加重复密码和验证码
- Yii2.0 添加验证码
- Yii2.0-advanced-10—高级版添加API应用
- Yii2.0-advanced-4—数据迁移和gii
- Yii2.0 advanced如何添加新项目(添加application)
- yii2.0给表单添加验证码的实现方法
- YII2.0-advanced-4—URL美化
- Yii2.0-advanced-3—语言包配置
- Yii2.0-advanced-11—restfull架构
- Yii2.0advanced分页:
- 安装yii2.0 advanced
- yii2中验证码的添加
- yii2基础 — 启动advanced版yii2
- Yii2.0 使用验证码
- Yii2.0 验证码错误
- 重复验证和验证码
- Yii2.0-advanced-10—数据库操作5(多数据库配置)
- Yii2.0-advanced-5—行为的使用(自动生成model时间数据)
- ControlGet获取控件可见属性
- asp.net输出js到页面
- (最新android studio 2.2.2)如何在已有工程下新建一个module
- SQL: IN VS EXISTS
- Android高效率实现弹出带动画效果的对话框,仿照微信对话框效果
- Yii2.0-advanced-5—添加重复密码和验证码
- AttributeError: 'NoneType' object has no attribute 'sc' 解决方法(二)
- 将Centos的yum源更换为阿里云
- MyBatis Generator generatorConfig.xml的配置
- (十七)ReactNative 中动画详解
- 【电视直播 ijkplayer】编译及导入(未完)
- ionic(一)
- linux java服务器环境搭建
- 每日一首古诗, 每日一个桌面壁纸