mirror of
https://gitee.com/ulthon/ulthon_information.git
synced 2026-03-03 16:24:28 +08:00
完成分页优化
This commit is contained in:
21
app/common/Bootstrap.php
Normal file
21
app/common/Bootstrap.php
Normal 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]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示创建资源表单页.
|
* 显示创建资源表单页.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user