上一篇文章我們介紹快速搭建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