发布于2026-07-06 阅读(0)
扫一扫,手机访问
在 Ubuntu 上跑 ThinkPHP,分页功能是后台开发的常客。很多人一上来就查各种扩展包,其实框架自带的分页方法已经够用了,而且配置起来非常直接。下面就把实际操作步骤拆开来说,配合代码,保证你能快速上手。

第一步,数据库得先跑起来。不管你是用 MySQL 还是其他关系型数据库,确保 ThinkPHP 项目能正常连接。这一步如果还没做,先配好 .env 或数据库配置文件,否则后面全白搭。
第二步,建模型。假设你有个 user 表,那就新建一个模型类,继承 ThinkPHP 的基类。代码非常简洁:
namespace app\model;
use think\Model;
class UserModel extends Model
{
protected $table = 'user';
}
模型里不需要写多余的东西,表名指定好就行。
第三步,控制器里写分页逻辑。在 UserController 的 index 方法里,调用模型自带的 paginate() 方法,传入每页显示的记录数(比如 10 条)。然后拿到分页对象,通过 render() 方法生成分页链接的 HTML,最后一起扔给视图渲染。
namespace app\controller;
use think\Controller;
use app\model\UserModel;
class UserController extends Controller
{
public function index()
{
$listRows = 10; // 每页条数
$list = UserModel::paginate($listRows);
$page = $list->render();
$this->assign('list', $list);
$this->assign('page', $page);
return $this->fetch();
}
}
代码里没有额外的查询条件,如果有筛选需求,可以在 paginate 之前加 where,分页方法会自动处理。
第四步,写视图模板。在对应的 index.html 里,用 {volist} 遍历数据列表,然后在底部输出分页链接 {$page}。注意 volist 是 ThinkPHP 内置的模板标签,也可以直接用 foreach,看个人习惯。
User List
ID
Name
Email
{volist name="list" id="vo"}
{$vo.id}
{$vo.name}
{$vo.email}
{/volist}
{$page}
第五步,别忘了配置路由。在 route.php 里将 /user 映射到刚才的控制器方法。如果你用的是 ThinkPHP 6 及以上版本,路由定义稍有变化,但核心思路一样。
use think\Route;
Route::get('user', 'UserController@index');
最后一步,启动项目。访问 http://localhost/user,如果一切正常,你会看到一个带分页条的用户表格。点击下一页,URL 会自动带上页码参数,数据也会正确切换。
整个过程没有用到第三方插件,完全是框架原生的能力。下次再遇到分页需求,直接复制这套模板改改模型和字段就能用,省心又稳定。代码量不大,但有几个细节值得注意:paginate() 返回的是一个分页对象,不要跟普通数据集搞混;视图里输出分页链接时最好给个包裹样式,方便前端调整美观度。把这些搞定了,Ubuntu 下的 ThinkPHP 分页就真的不是事儿了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8