上一篇文章我们介绍快速搭建YII2框架advanced安装配置
本篇文章将会配合YII2框架原有的登录机制模板快速的实现用户后台的登录
1:在数据库建立对应的用户信息表
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '账户',
`auth_key` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`password_hash` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`password_reset_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`role` smallint(6) NOT NULL DEFAULT '10',
`mobile` varchar(11) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '手机号码(登录账号)',
`status` smallint(6) NOT NULL DEFAULT '10' COMMENT '状态',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
INSERT INTO `admin` VALUES ('1', 'yicheng', 'kjfaoigk', '$2y$13$k0312JALBVCy7f2iPfJGXOdYUEYl6x8nSynSLpDNx6ky19gqZmCF2', '', '837269003@qq.com', '10', '15980893193', '10', '2017-09-28 16:08:31', '2017-09-19 16:08:28');
将上述 SQL文件进行执行,首先新建数据库
将数据库参数改为自己数据库名称
输入账户:yicheng 密码:123456 ,会报错 提示User表格不存在
如果我们把原来数据建立的admin 表格重命名 为user 刷新页面此时就没有报错了,显示登录成功
2:一般情况下User是留给前端普通用户注册使用的,怎样用自己的后台管理员Admin表格呢
将上一步的表格名称重新修改回admin,
在浏览器中访问:yii2.login/index.php?r=gii ,准备生成model
填好相关信息,框架会自动生成到文件目录
修改配置文件 设置用户登录验证类为上一步生成的admin模型
此时再次输入以yii2.login 发现依旧会报错,这又是为什么呢
是因为我们没有实现IdentityInterface接口
将原来的User 和model做一个比对,将Admin里面没有的函数从User表里面拷贝过来。
指定新的LoginForm: 拷贝一份LoginForm 修改它的命名空间,然后将Login 使用的Admin as为User
SiteController 即我们默认的登录器 指定我们配置好的LoginForm
网友评论