이 기사에서는 YII2.0 백엔드에 사용자 기능을 수동으로 추가하는 방법을 공유합니다. 이를 구현하는 데 어떤 클래스가 사용됩니까? , 내용이 매우 좋고 도움이 필요한 친구들이 참고할 수 있으며 모든 사람에게 도움이 될 수 있기를 바랍니다.
SignupForm 클래스를 사용하여 백그라운드에서 관리자 사용자를 추가합니다
1단계. frontend/models/SignupForm.php의 복사본을 배경 모델 폴더인 backend/models/SignupForm.php에 복사합니다.
2단계. 수정 필요: 새 SignupForm 클래스, AdminuserController 클래스의 actionCreate 메소드, 보기 파일 생성
3단계,
SignupForm 클래스의 네임스페이스를 백엔드/모델로 수정
백그라운드에서 사용자를 추가하기 위한 보기 파일 수정
SignupForm 클래스 및 요구 사항 필드의 규칙을 수정합니다.
signup() 메서드를 수정하고, 백엔드 계정을 만들고, SignupForm 클래스의 속성을 Adminuser 클래스 멤버에 전달하고, 이를 Adminuser 데이터 테이블에 저장합니다. 코드는 다음과 같습니다
signupform class
<?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; } }
크리징 파일 파일
<?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>
actionctreate 메소드의 수정 avinUserController 클래스
<?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, ]); }related 권장 사항 :
yii2는 Laravel을 사용하는 방법을 구현합니다. API 인증 구현을 위한 여권
위 내용은 YII2.0 백그라운드에서 사용자 기능을 수동으로 추가하는 방법은 무엇입니까? 이를 구현하는 데 어떤 클래스가 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!