上一篇文章我們介紹快速搭建YII2框架advanced安裝配置
本篇文章將會(huì)配合YII2框架原有的登錄機(jī)制模板快速的實(shí)現(xiàn)用戶(hù)后臺(tái)的登錄
1:在數(shù)據(jù)庫(kù)建立對(duì)應(yīng)的用戶(hù)信息表
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 '賬戶(hù)',
`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 '手機(jī)號(hào)碼(登錄賬號(hào))',
`status` smallint(6) NOT NULL DEFAULT '10' COMMENT '狀態(tài)',
`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文件進(jìn)行執(zhí)行,首先新建數(shù)據(jù)庫(kù)
將數(shù)據(jù)庫(kù)參數(shù)改為自己數(shù)據(jù)庫(kù)名稱(chēng)
輸入賬戶(hù):yicheng? 密碼:123456 垦垂,會(huì)報(bào)錯(cuò) 提示User表格不存在
如果我們把原來(lái)數(shù)據(jù)建立的admin 表格重命名 為user? 刷新頁(yè)面此時(shí)就沒(méi)有報(bào)錯(cuò)了胳螟,顯示登錄成功
2:一般情況下User是留給前端普通用戶(hù)注冊(cè)使用的傻唾,怎樣用自己的后臺(tái)管理員Admin表格呢
將上一步的表格名稱(chēng)重新修改回admin,
在瀏覽器中訪(fǎng)問(wèn):yii2.login/index.php?r=gii ,準(zhǔn)備生成model
填好相關(guān)信息,框架會(huì)自動(dòng)生成到文件目錄
修改配置文件 設(shè)置用戶(hù)登錄驗(yàn)證類(lèi)為上一步生成的admin模型
此時(shí)再次輸入以yii2.login 發(fā)現(xiàn)依舊會(huì)報(bào)錯(cuò)景描,這又是為什么呢
是因?yàn)槲覀儧](méi)有實(shí)現(xiàn)IdentityInterface接口
將原來(lái)的User 和model做一個(gè)比對(duì)霸褒,將Admin里面沒(méi)有的函數(shù)從User表里面拷貝過(guò)來(lái)。
指定新的LoginForm: 拷貝一份LoginForm 修改它的命名空間锰镀,然后將Login 使用的Admin? as為User
SiteController 即我們默認(rèn)的登錄器 指定我們配置好的LoginForm