【原创】 thinkphp5分页传递参数
栏目:ThinkPHP  作者:隆航  阅读:(801)

按照惯例先描述问题:

需求分析:在后台管理文章的时候添加文章搜索,然后搜索出来的数据如果大,需要分页。这个时候就涉及到带参数分页。

分页类的便捷用法:

1,没有参数的时候直接 paginate

具体用法:

//控制器
$list = $ArticleModel->paginate(10);
$this->assign('list',$list);
//模板
{$list->render()}

分页每页10页。模板实例这里对象的render即可。[最简单的用法]

2,分页带参数的时候,用到 paginate 后面的几个参数

手册地址: http://www.kancloud.cn/manual/thinkphp5/154294

paginate有三个参数,

第一个必须表是每页分多少个[如果配置文件中设置了,可以不用]

第二个参数表是的是简洁分页,如果为true,那么分页的就是只有上一页和下一页

第三个参数是一个数组,具体可以自己传入或者在配置文件中配置。

重要部分:

参数描述
list_rows每页数量
page当前页
pathurl路径
queryurl额外参数
fragmenturl锚点
var_page分页变量
type分页类名

这里我们需要用到query闭包查询。

实例:

//模型
public function getList($where,$keyword)
{
    $data = $this
        ->where($where)
        ->order('art_id desc')
        ->paginate(10,false,['query' => ['keyword'=>$keyword] ]);
    return $data;
}


2016年11月20日补充更新:

参数的传递可以直接使用助手函数 

request()->param()

使用方法就变成了

/**
* 获取文章列表 - 筛选
* @param $where
* @return mixed
*/
public function getList($where)
{
  $data = $this
     ->where($where)
     ->order('art_id desc')
     ->paginate(10,false,['query' => request()->param()]);
  return $data;
}




qmxcyf
#208

   qmxcyf     2016-12-02 13:31    Win 7      四川省成都市

如果搜索条件中是日期范围该如何处理呢?查询的时候是这样拼接的: $map['create_time'] = array('between',[strtotime($start),strtotime($end)+86400]); 如果把query也这样赋值: $query['create_time'] = array('between',[strtotime($start),strtotime($end)+86400]); 再调用 $list = ModelScattered::where($map)->paginate(10,false,['query'=>$query]); 搜索没问题,但翻页就会有问题了,实现不了搜索结果分页。

admin

   admin     12-03 09:52    回复 @qmxcyf 中说到:

$query中不需要存数组,直接存你GET的参数就可以的,翻页的时候自动获取会根据你前面的where条件转换成数组条件的

Ruke
#203

   Ruke     2016-11-21 19:22    Win 10      北京

<script >alert(111)</script> <img src="javascript:alert(1111)">

admin

   admin     11-25 09:20    回复 @Ruke 中说到:

评论是需要审核过了。测试代码会用thinkphp的 I 函数过滤的

lantern
#202

   lantern     2016-11-18 19:47    Unknown      湖北省武汉市

学习了。。。

admin

   admin     11-20 09:54    回复 @lantern 中说到:

哈哈

昵称
邮箱
域名
  记住 通知博主
验证码

  程序相关

站点版本:青春博客-V 2.1.0

开源版本:青春博客-Beta v2.0

 下载  在线支付  在线工具  在线音乐

  随机文章