本文作者:心月

YII2高级版框架搭建完整博客系统教程——前后台相互独立

心月IT博客 2019-03-12
YII2高级版框架搭建完整博客系统教程——前后台相互独立摘要:一个博客的用户通常由管理员和会员组成,如果管理员和会员都由相同的模块控制,难免造成数据混乱,而且一旦数据泄露就是管理员和会员数据同时泄露,安全隐患不小。而且管理员和会员的所拥有的权限和操作是不一样的,最好的方法就是把管理员和会员区分开,让他们相互独立,互不影响。

    一个博客的用户通常由管理员和会员组成,如果管理员和会员都由相同的模块控制,难免造成数据混乱,而且一旦数据泄露就是管理员和会员数据同时泄露,安全隐患不小。而且管理员和会员的所拥有的权限和操作是不一样的,最好的方法就是把管理员和会员区分开,让他们相互独立,互不影响。

    YII2高级框架默认的基础配置中前台和后台账号是公用一张数据表的,本文的主要内容就是分享,如何让YII2的前后台独立出来。

1、数据表分离

前后台用户数据表的结构除了一些特殊字段前台表不需要,其他字段可以说是一样的,所以可以用创建user表的create来创建admin数据表,只需把user改成admin即可。(【注意】千万不要用复制的方法把user表复制一份来回重命名,否则后台登录的时候有可能报Array to string conversion的错误提示,但实际上程序并没有错,而是复制的时候表数据出了问题,所以对于这个错误调式的时候回非常麻烦

2、把common/models里的loginForm.php分别复制到前台和后台的models里面,并修改命名空间,common里的loginForm.php就不需要了,可以删除掉。

login表单分离

backend中的LoginForm.php的namespace 修改为:backend/models;

frontend中的LoginForm.php的namespace 修改为:frontend/models;

将common文件夹中的User.php 复制一份到当前目录下并重命名为AdminModel.php,将User.php重命名为UserModel.php 同时修改这两个文件里的类名为文件名(不包含后缀)

文件名修改

3、类引用修改

在前台和后台的form表(登录、注册、重置密码)对UserAdmin表的引用,之前用的是User,统统改成UserModel,还有命名空间引用,之前引用的是common/models/User;现在改成common/models/UserModel;

form表引用修改

具体有哪几处我就不一一列出来了,可以试着运行下登录、注册、退出等,如果有报错根据错误提示修改即可。Class错误包括命名空间命名和引入,同时注意有用到UserModel或者AdminModel的文件,检查下是否引入了相应的类(即,是否有 use common/models/UserModel; 或者 use common/models/AdminModel;)如果没有则补上,同时把多余的 use common/models/User;删掉

命名空间错误

前台配置文件引用修改,同样后台也有一处配置文件引用,前台只需把User改成UserModel,后台User改成AdminModel,配置文件中的其他内容不需要修改。

配置文件引用

总结下,需要修改的文件在哪里,以前台为例,后台参照前台的修改:

配置文件(frontend/config/mian.php)  主要修改user的引用
控制器 (frontend/controllers/SiteController.php) 主要修改LoginForm表单命名空间的引用
models里面的所有php文件(frontend/models) 命名空间的引用,以及对User的引用改为UserModel,后台改为AdminModel

前台和后台修改的细微差别,前台:User =》 UserModel,后台 User =》 AdminModel,以及各自对 LoginForm 的引用,其余的修改是一样的。

修改好之后检查下前后台的登录、注册是否正常,若有报错表示还有地方没修改,只需按照错误提示修改即可。

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 2019-03-12
若转载请注明原文及出处:https://www.xinyueseo.com/yii/172.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论