会员列表-Thinkphp5.1开发后台管理系统
今天来说下每一个后台管理系统都会有的一个模块-列表,列表的形式基本上都是差不多的,也有通过数据渲染的形式的,利用使用layui框架的数据表格实现,如下图:
更多的是常见的操作DOM来实现的,如下图:
今天发布的就是使用操作DOM的形式来渲染页面,建议使用前后端分离或数据表格形式,对用户更加友好。
一、基础说明
1、我们通过查看user表的数据,使用分页方式进行输出,每一页15条数据,排序为添加时间倒序。
2、通过浏览器地址,系统匹配路由规则,进入对应控制器及方法。
3、加载逻辑层,在逻辑层中加载模型层,返回数据。
4、控制器层对数据进行分页、数据转换及处理。
5、加载页面,并携带数据返回。
6、在视图中,渲染数据。
二、实例代码
1、路由规则
//人员管理 Route::group('user',function (){ Route::get('index','admin/user/index'); //列表 });
2、控制器方法
/** * 人员列表 * @return \think\response\View */ public function index() { $data = $this->user_logic->getList(['display'=>1]); $page = $data->render(); $list = $data->all(); foreach($list as $k=>$v) { $list[$k]['department'] = getTrueDepartment($v['department']); $list[$k]['post'] = getTruePost($v['post']); } return view('User/index',['data'=>$data,'page'=>$page]); }
3、逻辑层代码
/** * 获取数据 * @param $where * @return \think\Paginator */ public function getList($where) { $data = $this->user_model->getList($where); return $data; }
4、模型层代码
/** * 分页 * @param $where * @param string $field * @param string $order * @return \think\Paginator */ public function getList($where,$field='*',$order = 'create_time desc') { $user = new User; $data = $user->where($where)->field($field)->order($order)->paginate(); return $data; }
5、公共方法代码
/**获取部门 * @param $key * @return mixed */ function getTrueDepartment($key) { $arr = ["","销售部","售后部","客服部 ","研发部","运营部"]; return $arr[$key]; } /** * 获取岗位 * @param $key * @return mixed */ function getTruePost($key) { $arr = ["客服主管","销售顾问","客户经理","运营推广","研发主管","研发员工","客服人员"]; return $arr[$key]; }
6、视图层核心代码
{volist name="data" id="val"} <tr> <td>{$val.id}</td> <td>{$val.username}</td> <td>{$val.sex == 1 ? '男' : '女'}</td> <td>{$val.userphone}</td> <td>{$val.useremail}</td> <td><img src="{$val.userhead}" alt="{$val.username}" class="userhead"></td> <td>{$val.department}</td> <td>{$val.post}</td> <td><span class="layui-badge layui-bg-green">{$val.status == 1 ? '正常' : '冻结'}</span></td> <td> <a href="{:url('User/user_update',['id'=>$val['id']])}" class="layui-btn layui-btn-xs"><i class="layui-icon layui-icon-edit"></i>修改</a> <button class="layui-btn layui-btn-danger layui-btn-xs button-del" rel="article-{$val.id}"><i class="layui-icon layui-icon-delete"></i>删除</button> </td> </tr> {/volist}
视图层分页代码,说明thinkphp5.1版本对原样输出需使用 |raw 方法
<div id="page">{$page|raw}</div>
三、效果