完成分页优化

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;
use app\BaseController as AppBaseController;
use think\facade\Config;
use think\facade\View;
use think\helper\Str;
use app\common\Bootstrap;
use think\Paginator;
class BaseController extends AppBaseController
{
public function 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;
use app\model\Category;
use app\model\Nav;
use app\model\Post;
use app\model\PostCategory;
use think\facade\Route;
use think\facade\View;
use think\Request;
@@ -23,45 +21,45 @@ class Index extends Common
$sub_category = [];
$current_category = [];
if(!empty($this->request->param('category_id'))){
$sub_category = Category::where('pid',$this->request->param('category_id'))->where('type',3)->select();
if (!empty($this->request->param('category_id'))) {
$sub_category = Category::where('pid', $this->request->param('category_id'))->where('type', 3)->select();
$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 = 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);
$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');
$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');
}
}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');
if(!empty($keywords)){
$model_post->whereLike('title|desc',"%$keywords%");
if (!empty($keywords)) {
$model_post->whereLike('title|desc', "%$keywords%");
}
$list_post = $model_post->paginate();
View::assign('current_category',$current_category);
View::assign('sub_category',$sub_category);
$list_post = $model_post->paginate(['url' => 'Index/index']);
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();
}
/**
* 显示创建资源表单页.
*

View File

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