完成分页优化

This commit is contained in:
augushong
2020-08-20 12:12:12 +08:00
parent 44ff06a2fd
commit e07ca74785
5 changed files with 50 additions and 27 deletions

21
app/common/Bootstrap.php Normal file
View File

@@ -0,0 +1,21 @@
<?php
namespace app\common;
use think\paginator\driver\Bootstrap as DriverBootstrap;
class Bootstrap extends DriverBootstrap
{
/**
* 获取页码对应的链接
*
* @access protected
* @param int $page
* @return string
*/
protected function url(int $page): string
{
return (string)url($this->options['url'], ['page' => $page]);
}
}

View File

@@ -3,17 +3,18 @@
namespace app\index\controller; namespace app\index\controller;
use app\BaseController as AppBaseController; use app\BaseController as AppBaseController;
use think\facade\Config; use app\common\Bootstrap;
use think\facade\View; use think\Paginator;
use think\helper\Str;
class BaseController extends AppBaseController class BaseController extends AppBaseController
{ {
public function initialize() public function initialize()
{ {
parent::initialize(); parent::initialize();
Paginator::maker(function($items, $listRows, $currentPage, $total, $simple, $options){
return new Bootstrap($items, $listRows, $currentPage, $total, $simple, $options);
});
} }
} }

View File

@@ -3,10 +3,8 @@
namespace app\index\controller; namespace app\index\controller;
use app\model\Category; use app\model\Category;
use app\model\Nav;
use app\model\Post; use app\model\Post;
use app\model\PostCategory; use app\model\PostCategory;
use think\facade\Route;
use think\facade\View; use think\facade\View;
use think\Request; use think\Request;
@@ -23,45 +21,45 @@ class Index extends Common
$sub_category = []; $sub_category = [];
$current_category = []; $current_category = [];
if(!empty($this->request->param('category_id'))){ if (!empty($this->request->param('category_id'))) {
$sub_category = Category::where('pid',$this->request->param('category_id'))->where('type',3)->select(); $sub_category = Category::where('pid', $this->request->param('category_id'))->where('type', 3)->select();
$current_category = Category::find($this->request->param('category_id')); $current_category = Category::find($this->request->param('category_id'));
if(empty($this->request->param('sub_category_id'))){ if (empty($this->request->param('sub_category_id'))) {
$categorys = [$this->request->param('category_id')]; $categorys = [$this->request->param('category_id')];
$categorys = array_merge($categorys,array_column((array)Category::getListLevel($this->request->param('category_id')),3)); $categorys = array_merge($categorys, array_column((array)Category::getListLevel($this->request->param('category_id')), 3));
$categorys_where = PostCategory::whereIn('category_id',$categorys); $categorys_where = PostCategory::whereIn('category_id', $categorys);
$model_post = Post::hasWhere('categorys',$categorys_where)->where('status',1)->order('id desc');
}else{
$model_post = Post::hasWhere('categorys',['category_id'=>$this->request->param('sub_category_id')])->where('status',1)->order('id desc');
$model_post = Post::hasWhere('categorys', $categorys_where)->where('status', 1)->order('id desc');
} else {
$model_post = Post::hasWhere('categorys', ['category_id' => $this->request->param('sub_category_id')])->where('status', 1)->order('id desc');
} }
}else{ } else {
$model_post = Post::where('status',1)->order('id desc'); $model_post = Post::where('status', 1)->order('id desc');
} }
$model_post->where('type',3); $model_post->where('type', 3);
$keywords = $this->request->param('keywords'); $keywords = $this->request->param('keywords');
if(!empty($keywords)){ if (!empty($keywords)) {
$model_post->whereLike('title|desc',"%$keywords%"); $model_post->whereLike('title|desc', "%$keywords%");
} }
$list_post = $model_post->paginate();
View::assign('current_category',$current_category); $list_post = $model_post->paginate(['url' => 'Index/index']);
View::assign('sub_category',$sub_category);
View::assign('list_post',$list_post); View::assign('current_category', $current_category);
View::assign('sub_category', $sub_category);
View::assign('list_post', $list_post);
return View::fetch(); return View::fetch();
} }
/** /**
* 显示创建资源表单页. * 显示创建资源表单页.
* *

View File

@@ -6,6 +6,7 @@ namespace app\model;
use think\Model; use think\Model;
use think\model\concern\SoftDelete; use think\model\concern\SoftDelete;
use think\Paginator;
/** /**
* @mixin think\Model * @mixin think\Model
@@ -143,4 +144,5 @@ class Post extends Model
return $url_info['scheme'].'://'.$url_info['host'].'/a'.$this->getData('uid').'.html'; return $url_info['scheme'].'://'.$url_info['host'].'/a'.$this->getData('uid').'.html';
} }
} }

View File

@@ -86,6 +86,7 @@
<img class="nodata" src="/static/images/nodata.png" alt=""> <img class="nodata" src="/static/images/nodata.png" alt="">
{/empty} {/empty}
</div> </div>
{$list_post->render()|raw}
</div> </div>
</div> </div>
</div> </div>