当前位置: 首页 > news >正文

策划书网站wordpress固定主题

策划书网站,wordpress固定主题,哪个网站买东西是正品又便宜,wordpress查看更多一、调用内置方法paginate thinkphp内置了一个paginate方法支持分页功能 该方法位于library\think\db\Query.php内 /*** 分页查询* param int|array $listRows 每页数量 数组表示配置参数* param int|bool $simple 是否简洁模式或者总记录数* param array $config 配…

一、调用内置方法paginate

thinkphp内置了一个paginate方法支持分页功能

该方法位于library\think\db\Query.php内

	    /*** 分页查询* @param int|array $listRows 每页数量 数组表示配置参数* @param int|bool  $simple   是否简洁模式或者总记录数* @param array     $config   配置参数*                            page:当前页,*                            path:url路径,*                            query:url额外参数,*                            fragment:url锚点,*                            var_page:分页变量,*                            list_rows:每页数量*                            type:分页类名* @return \think\Paginator* @throws DbException*/public function paginate($listRows = null, $simple = false, $config = []){// 如果$simple是整数,表示这是总记录数,并不是简洁模式if (is_int($simple)) {$total  = $simple;$simple = false;}// 如果 $listRows 是数组,表示这是配置参数,需要合并默认配置。if (is_array($listRows)) {$config   = array_merge(Config::get('paginate'), $listRows);$listRows = $config['list_rows'];} else {// 其他情况使用传入的 $config 合并默认配置,确定每页记录数量。$config   = array_merge(Config::get('paginate'), $config);$listRows = $listRows ?: $config['list_rows'];}/** @var Paginator $class */// 根据配置中的 type 确定使用的分页类。$class = false !== strpos($config['type'], '\\') ? $config['type'] : '\\think\\paginator\\driver\\' . ucwords($config['type']);// 确定当前页码,如果配置中有 page 直接使用,否则通过分页类的 getCurrentPage 方法获取。$page  = isset($config['page']) ? (int) $config['page'] : call_user_func([$class,'getCurrentPage',], $config['var_page']);$page = $page < 1 ? 1 : $page;$config['path'] = isset($config['path']) ? $config['path'] : call_user_func([$class, 'getCurrentPath']);// 如果没有指定总记录数且不使用简洁模式,查询总记录数并获取当前页数据。if (!isset($total) && !$simple) {$options = $this->getOptions();unset($this->options['order'], $this->options['limit'], $this->options['page'], $this->options['field']);$bind    = $this->bind;$total   = $this->count();$results = $this->options($options)->bind($bind)->page($page, $listRows)->select();} elseif ($simple) {//如果使用简洁模式,只查询当前页数据。$results = $this->limit(($page - 1) * $listRows, $listRows + 1)->select();$total   = null;} else {//否则直接查询当前页数据。$results = $this->page($page, $listRows)->select();}//调用分页类的 make 方法,生成并返回分页器对象。return $class::make($results, $listRows, $page, $total, $simple, $config);}

这个方法有三个参数

参数类型解释
$listRowsint|array每页数量 数组表示配置参数
$simpleint|bool是否简洁模式或者总记录数
$configarray配置参数

1、第一种情况

当我们需要分条件查询时,举个例子

后端代码为:

    public function page(){$model=new UserModel();// 设置分页条数为20$users=$model->where("status",1)->paginate(20);$this->assign("users",$users);return $this->fetch();}

前端代码为:

<html>
<head><title>测试</title>
</head>
<body><ul>{volist name="users" id="user"}<li>{$user.name}_{$user.age}</li>{/volist}</ul>{$users->render()}
</body>
</html> 

拓展:

(1)获取数据总条数,当前页和总页数

        // 总条数$total=$user->total();// 当前页,从路径获取$page= input("page") ?: 1;// 总页数,计算获得$pageCount = ceil($count / $20);

(2)分页方法写在后端

后端代码为:

    public function page(){$model=new UserModel();// 设置分页条数为20$users=$model->where("status",1)->paginate(20);$userPage=$users->render();$this->assign("users",$users);$this->assign("userPage",$userPage);return $this->fetch();}

前端代码为:

<html>
<head><title>测试</title>
</head>
<body><ul>{volist name="users" id="user"}<li>{$user.name}_{$user.age}</li>{/volist}</ul>{$userPage}
</body>
</html> 

2、第二种情况

如果我们所访问的路径为get请求所获得的数据,当点击第二页时,路径就会刷新,从而获取不到原来所存储的路径变量值。

举个例子

后端代码为:

    public function page(){$archivesModel=new \addons\cms\model\Archives();//请求路径中带有参数if (input('category_id')){$channel_id=input("category_id");$archivesModel->where("channel_id",$channel_id);}if (input('keyword')){$title=input("keyword");$archivesModel->where("title",'like','%' . $title . '%');}// 分页数$listRow=20;// 总数据$archives=$archivesModel->order('id', 'desc')->paginate($listRow);$this->assign("archives",$archives);return $this->fetch();}

前端代码为:

{volist name="archives" id="item"}<tr><td>{$item.id}</td><td class="listNewsTitleContent"><a target="_blank" href="{$item.url}" title="{$item.title}">{$item.title}</a></td><td>{$item.industry|htmlentities}</td><td>{$item.area|htmlentities}</td><td>{:date("Y-m-d", $item['publishtime'])}</td></tr>
{/volist}
{$archives->render()}

此时当我们点击第二页的时候,页面会跳转到第二页,但是原来第一页request上的url参数却缺失了,所以我们需要保留原有的路径参数

后端代码为:

    public function page(){$archivesModel=new \addons\cms\model\Archives();//请求路径中带有参数if (input('category_id')){$channel_id=input("category_id");$archivesModel->where("channel_id",$channel_id);}if (input('keyword')){$title=input("keyword");$archivesModel->where("title",'like','%' . $title . '%');}// 分页数$listRow=20;// 总数据$archives=$archivesModel->order('id', 'desc')->paginate($listRow,false,['query'=>$this->request->param() ]);$this->assign("archives",$archives);return $this->fetch();}

 前端代码则不变,这时候就能访问到原有参数的第二页了。

http://www.yayakq.cn/news/550142/

相关文章:

  • asp.net做网站兰州网站seo哪家公司好
  • 杭州品牌网站ckeditor for wordpress 设置
  • 天津大学新校区建设网站深圳网站建设定制开发 超凡科技
  • 网站访问量统计怎么做如何开公司注册需要多少钱
  • 个人网站备案做商城陕西省建设厅注册中心网站
  • 贵阳网站方舟网络最好sem是什么公司
  • 网站项目建设策划书流程营销型网站免费模板下载
  • 云南省新农村建设网站做的好的网站营销微信公众号
  • spring mvc 网站开发wordpress如何加视频
  • 网站建设项目教程广州花都网站开发
  • 做网站上传的图片大小wordpress自定义评论样式
  • 网站运营阶段头像设计
  • 沈阳城市建设学院官方网站网站做跳转微信打开
  • 上海专业的网站公阅读分享网站模板
  • 五大搜索引擎 三大门户网站营销型网站的目标是
  • 戴尔网站建设目标中山移动网站建设公司
  • 银川做网站最好的公司有哪些西安游玩攻略
  • 某品牌休闲零食网站建设规划书网站开发目标开题报告
  • wordpress多站点命名网站开发与维护项目招标
  • 怎么做网站推广怎么样网站推广seo设置
  • 淄博乐达网站建设内部优惠券网站怎么做
  • 友汇网站建设管理后台东莞网站开发前三强
  • 网站更换建设网站书籍
  • 程序员网站建设北京网站设计定制开发建设公司
  • 贵州省建设网官方网站办公管理系统有哪些
  • 贵阳网站建设贵阳做模具行业的网站
  • python 快速做网站目前最主流的网页制作软件是
  • 网站里的友情链接网站开发的技术路线是什么
  • wordpress 多站点 插件石景山网站制作
  • 做外贸没有网站需要什么条件做worksheet的网站