首页 > 编程 > PHP > 正文

yii2.0实现验证用户名与邮箱功能

2020-03-22 16:47:30
字体:
来源:转载
供稿:网友
本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下视图signup.php代码:
use yii/helpers/Html;use yii/bootstrap/ActiveForm;/* @var $this yii/web/View *//* @var $form yii/bootstrap/ActiveForm *//* @var $model /frontend/models/SignupForm */$this- title = '注册';$this- params['breadcrumbs'][] = $this- title; div h1 = Html::encode($this- title) /h1 p Please fill out the following fields to signup: /p div div php $form = ActiveForm::begin([ 'id' = 'form-signup', 'enablehtml' target='_blank'>AjaxValidation' = true, 'enableClientValidation' = true, ]); = $form- field($model, 'username') = $form- field($model, 'email') = $form- field($model, 'password')- passwordInput() = $form- field($model, 'password_compare')- passwordInput() div = Html::submitButton('Signup', ['class' = 'btn btn-primary', 'name' = 'signup-button']) /div php ActiveForm::end(); /div /div /div 控制器SiteController.php
public function actionSignup() $model = new SignupForm(); $model- load($_POST); if (Yii::$app- request- isAjax) { Yii::$app- response- format = /yii/web/Response::FORMAT_JSON; return /yii/bootstrap/ActiveForm::validate($model); if ($model- load(Yii::$app- request- post())) { if ($user = $model- signup()) { if (Yii::$app- getUser()- login($user)) { return $this- goHome(); return $this- render('signup', [ 'model' = $model,模型SignupForm.php
use common/models/User;use yii/base/Model;use Yii; * Signup formclass SignupForm extends Model public $username; public $email; public $password; public $password_compare; * @inheritdoc public function rules() return [ ['username', 'filter', 'filter' = 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' = '/common/models/User', 'message' = '用户名已存在.'], ['username', 'string', 'min' = 2, 'max' = 255], ['email', 'filter', 'filter' = 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'unique', 'targetClass' = '/common/models/User', 'message' = '邮箱名已存在.'], [['password', 'password_compare'], 'required'], [['password', 'password_compare'], 'string', 'min' = 6, 'max' = 16, 'message' = '{attribute}是6-16位数字或字母'], ['password_compare', 'compare', 'compareAttribute' = 'password', 'message' = '两次密码不一致'], * Signs user up. * @return User|null the saved model or null if saving fails public function signup() if ($this- validate()) { $user = new User(); $user- username = $this- username; $user- email = $this- email; $user- setPassword($this- password); $user- generateAuthKey(); if ($user- save()) { return $user; return null;以上就是本文的全部内容,帮助大家实现yii2.0验证功能。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表