0%

数据库课程设计学习记录六(完)

完善细节

其实很早就完成了,但不是很想写笔记¯_(ツ)_/¯

增加用户权限控制

增加用户权限控制的方法很简单,所有继承自Base控制器的控制器在执行前都必须执行Base,所以我们写多个不同的Base,对应不同的表,在Base中进行用户类别的判断,如果他是可以访问这个表的用户,即通过,如果不行,则直接弹出权限错误。(这里有个小改动,将超级管理员的用户类别从0改为4,因为0一般用来判断是否登录)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
namespace app\keshe\controller;
use think\Controller;
class Base extends Controller
{
public function _initialize()
{
if(!session('yonghuleibie')){
$this->error('请先登录系统!','Login/login');
}
else{
if(session('yonghuleibie') != 3)
{
if(session('yonghuleibie') != 4)
{
$this->error('您的权限无法访问此表!');}
}
}
}
}

这段代码很好理解,凡事继承自他的控制器首先要执行这段代码,意为如果没有用户类别,说明没有登录,会弹出没有登录的错误,如果是用户管理员(1)或者维修员(2),他们是没有权限访问这张表的,所以会弹出权限不足错误。

与此同时,在普通用户的控制器下,应该继承这个类:

1
2
3
use app\keshe\controller\Base;
......
class Search extends Base

这样重复几遍,就能实现每种用户的分离操作,即使用户知道其他类型用户的数据表的路由,他依然无法访问。

退出登录

退出登录的方法十分简单,只需要把退出登录的按钮连接到login界面,然后在执行返回login模版前将session置0即可。

1
2
3
4
5
public function login()
{
session('yonghuleibie',0);
return $this->fetch();
}

就像这样,虽然用拼音真的很蠢,但是在这么多字段的情况下用拼音比较好分辨¯_(ツ)_/¯。

这样每次进入login界面都会直接退出登录状态。

结束

自此,在稍微调整下细微的差错,加上自己喜欢的CSS样式,这个鸡肋的实验室设备管理系统就做好了,因为课设时间有些紧张,而且还有其他的课程考试,好多想法因为怕出错都没有实验,只做出了最简单的题目所要求的功能,而且没有打磨细节,虽然如此,仍然可以感觉到thinkphp是一款比较优秀的框架,以后一定会深入的学习它。

终于完了,泪目(T^T)。最后放张E-R图来结束这个学习记录(不过好像E-R图要一开始画好耶)

E-R图

在放上课设报告和模块源码:

课设报告

课设源码

参考资料

https://www.bilibili.com/video/BV1Vx411V7fE 千锋教育ThinkPHP5.0框架全方位解读与实战

https://www.bilibili.com/video/BV17J411K7Zd 李炎恢ThinkPHP5.1PHP框架十天精品课堂

https://www.freedgo.com/erd-index.html E-R图在线绘制

thinkphp5.0官方文档