View signup.php Code:
<?php use yii\helpers\html; Use Yii\bootstrap\activeform; /* @var $this Yii\web\view *//* @var $form yii\bootstrap\activeform */* @var $model \frontend\models\signupform */$thi S->title = ' register '; $this->params[' breadcrumbs ' [] = $this->title;?> <div class= "Site-signup" >
Controller 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, ]); }
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 ' =& Gt ' User name already exists. ', ' [' Username ', ' string ', ' min ' = + 2, ' max ' = 255], [' email ', ' filter ', ' Filter ' =&G T ' Trim ', [' email ', ' required '], [' email ', ' email '], [' email ', ' unique ', ' Targetclass ' =&G T ' \common\models\user ', ' message ' and ' = ' the mailbox name already exists. '], [[' Password ', ' Password_compare '], ' required '], [ [' Password ', ' Password_compare '], ' string ', ' min ' = 6, ' max ' = +, ' message ' + ' {attribute} ' is 6-16 digits or letters '], [' Password_compare ', ' compare ', ' compareattribute ' = ' password ', ' message ' = ' two times password inconsistent ']; }/** * Signs user up. * * @return User|null the saved model or null if saving fails */Public Function signup () {if ($this->val Idate ()) {$user = new user (), $user->username = $this->username; $user->email = $this->email; $user-& Gt;setpassword ($this->password); $user->generateauthkey (); if ($user->save ()) {return $user; }} return null; }}