首页 > 编程 > PHP > 正文

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

2020-03-22 17:41:19
字体:
来源:转载
供稿:网友
本篇文章给大家分享的是关于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 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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表