您的位置:首页 > 编程语言 > PHP开发

PHP 如何利用thinkphp5.1实现带条件查询并且分页

2019-10-11 07:05 1296 查看
ps: 这是我很久之前困扰的一个问题。其实很简单听我慢慢说来

先上代码

  • 后端
<?php
namespace app\admin\controller;

use think\Controller;
use think\Request;

class Brand extends Controller
{
/**
* 显示品牌列表
*
* @return void
*/
public function lst()
{
/**获取get参数 */
$param=(array)input('get.');
/**清除分页参数 */
unset($param['page']);
/** 获取分页列表 */
$brandModel=new \app\common\model\Brand();
$this->assign([
'brandLst'=>$brandModel->where($param)->paginate(2,false,[
'query'=>$param
])
]);
return view();
}
  • 前端 - 原谅我只上关键的一部分,其他省略
<table class="layui-table layui-form">
<thead>
<tr>
<th>
<input type="checkbox" lay-filter="checkall" name="" lay-skin="primary">
</th>
<th>ID</th>
<th>品牌名称</th>
<th>品牌网址</th>
<th>品牌图片</th>
<th>品牌描述</th>
<th>状态</th>
<th>操作</th></tr>
</thead>
<tbody>
{volist name='brandLst' id='brand'}
<tr>
<td>
<input type="checkbox" name="id" value="1"   lay-skin="primary">
</td>
<td>{$brand.id}</td>
<td>{$brand.brand_name}</td>
<td>{$brand.brand_url}</td>
<td><img src="{$brand.brand_img}" alt="" style="width: 40px;"></td>
<td>{$brand.brand_description}</td>
<td class="td-status">
{eq name="$brand['status']" value='1'}
<span class="layui-btn layui-btn-normal layui-btn-mini">已启用</span></td>
{/eq}
{eq name="$brand['status']" value='0'}
<span class="layui-btn layui-btn-danger layui-btn-mini">未启用</span></td>
{/eq}
<td class="td-manage">
<a title="编辑"  onclick="xadmin.open('编辑','member-edit.html',600,400)" href="javascript:;">
<i class="layui-icon">&#xe642;</i>
</a>
<a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
<i class="layui-icon">&#xe640;</i>
</a>
</td>
</tr>
{/volist}
</tbody>
</table>
{$brandLst|raw}
  • 解释一下 其实前端还是用最常见的方式丝毫不需要做改变,当然这是tp5.1 。 后端每次检索完毕之后将筛选条件附加在paginate 页码上作为参数。很简单吧 效果还不错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP ThinkPHP