各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?

管理员 2023-09-05
PHP
125

YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?

内容导读

收集整理的这篇技术教程文章主要介绍了YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3991字,纯文字阅读大概需要6分钟

内容图文

本篇文章给大家分享的是关于YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?,内容很不错,有需要的朋友可以参考一下,希望可以帮助到大家。

后台添加管理员用户使用SignupForm类实现

步骤一、复制一份前台frontend/models/SignupForm.php 到后台模型文件夹中 backend/models/SignupForm.php

步骤二、明确需要修改的文件为:新的SignupForm类,AdminuserController类中的actionCreate方法,create视图文件

步骤三、

修改SignupForm类 的namespace为backend/models

修改后台添加用户的视图文件

修改SignupForm类中的规则和需求字段

修改signup()方法,创建后台账户并将SignupForm类中的属性传递给Adminuser类成员,并保存进Adminuser数据表,实现代码如下

SignupForm类

<?phpnamespace backendmodels;use yiibaseModel;use commonmodelsAdminuser;use yiihelpersVarDumper;/** * 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' => 'commonmodelsAdminuser', 'message' => '用户名已存在!'],            ['username', 'string', 'min' => 2, 'max' => 255],            ['email', 'trim'],            ['email', 'required'],            ['email', 'email'],            ['email', 'string', 'max' => 255],            ['email', 'unique', 'targetClass' => 'commonmodelsAdminuser', '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' => 'commonmodelsAdminuser','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;    }}

create视图文件

<?phpuse yiihelpersHtml;use yiiwidgetsActiveForm;/* @var $this yiiwebView *//* @var $model commonmodelsAdminuser */$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>

AdminuserController类中actionCtreate方法修改

<?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,        ]);    }

相关推荐:

YII2实现面向方面编程

如何利用laravel Passport实现API认证

以上就是YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?全部内容,希望文章能够帮你解决YII2.0后台如何手动添加用户功能?又是用哪种类来实现的?所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部