后台添加管理员用户使用SignupForm类实现
步骤一、复制一份前台frontend/models/SignupForm.php 到后台模型文件夹中 backend/models/SignupForm.php
步骤二、明确需要修改的文件为:新的SignupForm类,AdminuserController类中的actionCreate方法,create视图文件
步骤三、
修改SignupForm类 的namespace为backend/models
修改后台添加用户的视图文件
修改SignupForm类中的规则和需求字段
修改signup()方法,创建后台账户并将SignupForm类中的属性传递给Adminuser类成员,并保存进Adminuser数据表,实现代码如下
SignupForm类
?phpnamespace backend/models;use yii/base/Model;use common/models/Adminuser;use yii/helpers/VarDumper; * Signup form html' target='_blank'>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;}
create视图文件
?phpuse 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 >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后台如何手动添加用户功能?又是用哪种类来实现的?的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答