首页 > 开发 > PHP > 正文

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

2024-05-04 23:41:17
字体:
来源:转载
供稿:网友
这篇文章主要介绍了yii2.0实现验证用户名与邮箱功能的相关资料,需要的朋友可以参考下
 

本文为大家分享了yii2.0实现验证用户名与邮箱功能的相关代码,具体内容如下

视图signup.php代码:

<?phpuse 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 class="site-signup"> <h1><?= Html::encode($this->title) ?></h1> <p>Please fill out the following fields to signup:</p> <div class="row">  <div class="col-lg-5">   <?php $form = ActiveForm::begin([    'id' => 'form-signup',    'enableAjaxValidation' => true,    'enableClientValidation' => true,   ]); ?>        <?= $form->field($model, 'username') ?>    <?= $form->field($model, 'email') ?>    <?= $form->field($model, 'password')->passwordInput() ?>    <?= $form->field($model, 'password_compare')->passwordInput() ?>        <div class="form-group">     <?= 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 form */class 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表