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类
<?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;
}
}
create视图文件
<?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;
?>
<div 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]) ?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
</div> <?php ActiveForm::end(); ?> </div>
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.0 后台手动添加用户功能的更多相关文章
- Yii2.0 GridView 新增添加按钮
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'col ...
- mysql 8.0给数据库添加用户和赋权
-- 使用mysql 数据库 USE mysql -- 为mysql创建用户:case_dev 密码为:pass123 CREATE USER case_dev IDENTIFIED BY 'pass ...
- 17.Yii2.0框架模型添加记录
目录 新建控制器 HomeController.php 新建model Article.php 新建控制器 HomeController.php D:\xampp\htdocs\yii\control ...
- yii2.0用户登录,退出判断(摘录)
文章来源:http://blog.sina.com.cn/s/blog_88a65c1b0101ix13.html 判断用户是否登录 在 Yii2.0 里面,判断用户是否已经登录,我们用下面的代码即可 ...
- centos 添加用户
测试环境:CentOS 6.0 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy // ...
- jquery.validate.js使用说明——后台添加用户邮箱功能:非空、不能重复、格式正确
重点内容为: jQuery验证控件jquery.validate.js使用说明+中文API[http://www.tuicool.com/articles/iABvI3] 简单教程可以参考[jQue ...
- MVC5 网站开发之七 用户功能 1、角色的后台管理
角色是网站中都有的一个功能,用来区分用户的类型.划分用户的权限,这次实现角色列表浏览.角色添加.角色修改和角色删除. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 ...
- MVC5 网站开发之七 用户功能 2 用户添加和浏览
目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架 ...
- 2------------NLPIR(ICTCLAS2016)分词系统添加用户词典功能
备注:win7 64位系统,netbeans编程 基本代码框架参见我的另一篇文章:NLPIR分词功能 代码实现: package cwordseg; import java.io.Unsupporte ...
随机推荐
- 24点-code1
#include <iostream> #include <string> #include <cstdlib> #include <cmath> us ...
- pt-deadlock-logger使用
死锁监控pt-deadlock-logger 首先我们要创建一个表用来保存死锁的信息: CREATE TABLE deadlocks ( server ) NOT NULL, ts timestamp ...
- MQ测试
2015年8月13日23:14:52 测试RabbitMq ====================== 千兆局域网:send ≍10000/s receive ≍7000/s 百兆局域网:send ...
- Jsp Cookie的创建与读取 标签: cookiejsp 2016-11-17 15:14 61人阅读 评论(0)
Cookie.jsp <%@ page language="Java" import="java.util.*" pageEncoding="u ...
- bzoj3106 [cqoi2013]棋盘游戏
Description 一个n*n(n>=2)棋盘上有黑白棋子各一枚.游戏者A和B轮流移动棋子,A先走. l A的移动规则:只能移动白棋子.可以往上下左右四个方向之一移动一格. ...
- bzoj3718 [PA2014]Parking
Description 你的老板命令你将停车场里的车移动成他想要的样子.停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直向 ...
- poj 3253 Fence Repair (STL优先队列)
版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/34805369 转载请注明出 ...
- tensorflow训练代码
from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf mnist = input_dat ...
- 【转】计算Java List中的重复项出现次数
本文演示如何使用Collections.frequency和Map来计算重复项出现的次数.(Collections.frequency在JDK 1.5版本以后支持) package com.qiyad ...
- [转]表单提交:button input submit 的区别
博客转自于 http://harttle.com/2015/08/03/form-submit.html ,同时自己做了稍微改动 最近项目代码中的表单提交的方式已经百花齐放了,现在用这篇文章来整 ...