Thinkphp模型中使用分页paginate ;thinkCMF6

基础版本:
控制器

    $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]);
    }
}

发表回复