Cet article vous explique comment ajouter manuellement des fonctions utilisateur dans le backend YII2.0 ? Quelle classe est utilisée pour l’implémenter ? , le contenu est très bon, les amis dans le besoin peuvent s'y référer, j'espère que cela pourra aider tout le monde.
Utilisez la classe SignupForm pour ajouter des utilisateurs administrateurs en arrière-plan
Étape 1. Copiez une copie de frontend/models/SignupForm.php dans le dossier du modèle d'arrière-plan backend/models/SignupForm.php
Étape 2. Il est clair que les fichiers qui doivent être modifiés sont : la nouvelle classe SignupForm, la méthode actionCreate dans la classe AdminuserController, le fichier de vue de création
Étape 3.
Modifiez l'espace de noms de la classe SignupForm en backend/models
Modifiez le fichier de vue pour ajouter des utilisateurs en arrière-plan
Modifiez les règles et les champs d'exigences dans la classe SignupForm
Modifiez la méthode signup(), créez un compte backend et ajoutez la classe SignupForm. Les attributs sont transmis aux membres de la classe Adminuser et enregistrés dans la table de données Adminuser. Le code d'implémentation est le suivant
Classe SignupForm.
<?php namespace backend\models;use yii\base\Model; use common\models\Adminuser;use yii\helpers\VarDumper; /** * Signup form */ class SignupForm extends Model { public $username; public $email; public $password; public $password_repeat; public $nickname; public $phone; /** * {@inheritdoc} */ public function rules() { return [ ['username', 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => '\common\models\Adminuser', 'message' => '用户名已存在!'], ['username', 'string', 'min' => 2, 'max' => 255], ['email', 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\Adminuser', 'message' => '邮箱已存在!'], ['password', 'required'], ['password', 'string', 'min' => 6], ['password_repeat', 'required'], ['password_repeat', 'compare','compareAttribute'=>'password','message'=>'两次输入的密码不一致'], ['nickname', 'required'], ['email', 'string', 'max' => 128], ['phone', 'required'], [['phone'], 'unique','targetClass' => '\common\models\Adminuser','message'=>'{attribute}已经被占用了'], ['phone','match','pattern'=>'/^1[0-9]{10}$/','message'=>'{attribute}必须为1开头的11位纯数字'], ]; } public function attributeLabels() { return [ 'id' => 'ID', 'username' => '用户名', 'password' => '密码', 'password_repeat' => '再次输入密码', 'email' => '邮箱', 'nickname' => '昵称', 'phone' => '手机号', ]; } /** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if (!$this->validate()) { return null; } $user = new Adminuser(); $user->username = $this->username; $user->nickname = $this->nickname; $user->phone = $this->phone; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); $user->created_at = time(); $user->updated_at = time(); /* //保存调试 $user->save(); VarDumper::dump($user->errors); exit(0); */ return $user->save() ? $user : null; } }
créer un fichier de vue
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model common\models\Adminuser */ $this->title = 'Create Adminuser'; $this->params['breadcrumbs'][] = ['label' => 'Adminusers', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <p class="adminuser-create"> <h1><?= Html::encode($this->title) ?></h1> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'password')->passwordInput(['maxlength' => true]) ?> <?= $form->field($model, 'password_repeat')->passwordInput(['maxlength' => true]) ?> <?= $form->field($model, 'email')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'nickname')->textInput(['maxlength' => true]) ?> <?= $form->field($model, 'phone')->textInput(['maxlength' => true]) ?> <p class="form-group"> <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?> </p> <?php ActiveForm::end(); ?> </p>
Classe AdminuserController Modification de la méthode actionCtreate dans
<?php public function actionCreate() { $model = new SignupForm(); if ($model->load(Yii::$app->request->post())) { if($user = $model->signup()){ return $this->redirect(['view', 'id' => $model->id]); } } return $this->render('create', [ 'model' => $model, ]); }
Recommandations associées :
YII2 implémente une programmation orientée aspect
Comment l'implémenter à l'aide de la certification API Laravel Passport
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!