后台管理系统
https://gitee.com/hu-shaobin/php-projects源码地址
文章目录
1.前期准备
1.1需要资源
thinkPHP5后端框架+layui前端框架+mysql
1.2安装thinkphp5
在phpstudy/www目录下安装tp5.0
composer create-project --prefer-dist topthink/think=5.1 文件名(比如video)
1.3安装layui
到layui官网下载:https://www.layui.com/
把luyai解压放在public/static/plugins目录下以便后面html文件引用
<link rel="stylesheet" href="/static/plugins/layui/css/layui.css"><script type="text/javascript" src="/static/plugins/layui/layui.js"></script>
1.4配置域名
访问浏览器http://php.demo/,出现下图,配置成功
1.5查询语句封装
extend/Util/data/Sysdb.php
2.登录页面
2.1用户表
2.2创建入口文件
在public目录下创建admins.php(内容同index.php),然后在application目录下创建admins,在admins目录下创建controller和view目录,最后在controller控制器创建Account.php和view相应视图。
2.3验证码的安装与配置
2.3.1安装
d:\phpstudy\WWW\video>composer require topthink/think-captcha 1.*
2.3.2 config.php验证码配置(可做相应修改)
// 验证码配置'captcha' => ['setKey'=>'DolphinPHP.COM',//必须// 验证码的字符集'codeSet' => '23456789abcdefhijkmnpqrstuvwxyzABCDEFHJKMNPQRSTUVWXYZ',// 设置验证码字体大小'fontSize' => 18,// 添加混淆曲线'useCurve' => false,// 设置图片的高度、宽度'imageW' => 150,'imageH' => 35,// 验证码位数'length' =>4,// 验证成功后重置'reset' =>true],
2.4回车登录
2.5点击刷新验证码
3.后台首页
3.1布局
3.2功能
菜单点击,注销(代码见admins/controller/Hom.php和admins/controller/view/home)
3.3阻止非法用户访问
写一个baseAdmin类,实现对没有登录用户不能访问。然后admins/controller所有文件继承该类。
<?phpnamespace app\admins\controller;use think\Controller;use Util\data\Sysdb;class BaseAdmin extends Controller{public function __construct(){$this->db=new Sysdb();parent::__construct();$this->_admin = session('admin');// 未登录的用户不允许访问if(!$this->_admin){//如果session没有值,判定用户没有登录就跳转到登录页面header('Location: /admins.php/admins/Account/login');exit;} }}
4.管理员管理
4.1管理员列表
4.1.1布局
4.1.2功能:添加,编辑,删除(代码见admins/controller/Admin.php和admins/view/Admin)
添加界面
编辑界面
添加编辑页面见layer弹出层的iframe层 https://layer.layui.com/
删除界面
删除界面见layer弹出层的询问层 https://layer.layui.com/
4.1.3 表格中volist函数循环遍历
{volist name="data.lists" id="vo"}<tr><th>{$vo.id}</th><th>{$vo.username}</th><th>{$vo.truename}</th><th>{$vo.gid}</th><th>{$vo.status}</th><th>{$vo.add_time}</th><th><button class="layui-btn layui-btn-xs">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger">删除</button></th></tr>{/volist}
5.权限管理
5.1菜单管理
5.11布局
5.1.2 菜单表
菜单只能显示两级,默认只有两级菜单,pid为上一级菜单的mid
5.13功能:保存,子菜单,返回上一级(代码见admins/controller/Menu.php和admins/view/Mneu)
注:只有pid>0才有返回上一级,只有$pid=0才有子菜单。
5.2角色管理
5.2.1布局
5.2.2角色表
5.2.3功能:添加编辑删除(代码见admins/controller/Roles.php和admins/view/Roles)
5.2.4权限菜单分级
把子菜单放在children里
private function gettreeitems($items){$tree = array();foreach ($items as $item) {if(isset($items[$item['pid']])){$items[$item['pid']]['children'][] = &$items[$item['mid']];}else{$tree[] = &$items[$item['mid']];}}return $tree;}
下面两图就是分级和不分级区别:
2
6.系统管理(未完善)
6.1网站设置
6.1.1布局
6.1.2网站名称表
6.1.3功能(代码见admins/controller/Site.php和admins/view/Site)
7.标签管理
7.1标签表
flag分类:比如频道(channel)资费(charge)地区(area)…
7.2布局
7.3功能
(代码见admins/controller/Labels.php和admins/view/Labels)
8.影片管理
8.1影片表
8.2布局
8.3功能
8.3.1(代码见admins/controller/video.php和admins/view/video)
8.3.2 添加编辑删除
8.3.3 分页功能+模糊搜索
后端代码:分页参考thinkphp分页实现https://www.kancloud.cn/manual/thinkphp5_1/354120
前端使用layui分页模块https://www.layui.com/doc/modules/laypage.html
8.3.4图片上传
前端使用layui的文件上传https://www.layui.com/doc/modules/upload.html
后端使用thinkphp上传文件https://www.kancloud.cn/manual/thinkphp5_1/354121
9.杂项
js 函数传值
onclick="functionName(this);"onclick="functionName(this.value);"
通过this传值,函数获取的是当前的这个标签,比如p、li等,如果用jQuery来获取当前的这个标签可以通过
functionName(obj){$(obj).attr('p');}
这样$(obj)就是获取了当前的那个标签;
通过this.value传值的,在函数方面接收的就是具体的数据
functionName(obj){ alert(obj);}
提交表单
$.post('/admins.php/admins/Admin/save', $('form').serialize(), function(res) {}, 'json');
页面刷新:
setTimeout(function(){ window.location.reload(); },1000)
js 中return false作用
onclick="child({$vo.mid});return false;"
在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的 onclick时间(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果你想取消对象的默认动作就可以return false。