基础版本:
控制器
$csc=$topics->alias("a")
->leftJoin("meeting b","b.id=a.meeting_id")
->join("topics_own c","c.tid=a.id")
->join("upleader d","d.id=c.upid")
->where($where)->field("a.*")
->order("status")
->order("b.date desc")
->group("a.id")
->field("a.*,count(*) as count")
->paginate(10);
$csc->appends($this->request->param());
$this->assign(["list"=>$csc,"user"=>$this->user_info()]);
#$csc为传入分页信息、控制每页显示设置为10,若要其他数目请另外设置。
模板
<div class="row text-center">
<div class="pagination">{$info->render()}</div>
<p class="text-muted">---共计<b class="text-danger">{$info->total()}</b>条---</p>
</div>
模型创建:
<?php
namespace app\model;
use think\Model;
class User extends Model
{
protected $table = 'users';
// 添加一个方法用于获取分页数据
public static function getPaginatedData($pageSize = 10)
{
return self::paginate($pageSize, false, ['query' => request()->param()]);
}
}
控制器调用
<?php
namespace app\controller;
use app\model\User;
use think\facade\Request;
class UserController
{
public function index()
{
// 获取分页数据
$pageSize = Request::param('pageSize', 10); // 可以通过请求动态获取每页显示条数
$users = User::getPaginatedData($pageSize);
// 返回视图并传递分页数据
return view('user/index', ['users' => $users]);
}
}