豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: php分页laravel

🤖 Ai回答:
在 Laravel 中,PHP 分页是一个非常常见且强大的功能。Laravel 提供了内置的分页支持,可以轻松地对数据库查询结果进行分页处理。以下是使用 Laravel 实现分页的详细说明。

✅ 1、基本分页(使用 Eloquent 模型)

假设你有一个 `Post` 模型,你想对文章进行分页显示。

示例:获取每页 10 条数据

php
// 在控制器中
public function index()
{
$posts = Post::paginate(10); // 每页 10 条记录

return view('posts.index', compact('posts'));
}

在 Blade 模板中渲染分页链接

blade
{{ posts/index.blade.php }}
<table
@foreach($posts as $post)
<tr
<td{{ $post-title }}</td
<td{{ $post-content }}</td
</tr
@endforeach
</table

{{ $posts-links() }} {{ 渲染分页链接 }}

`{{ $posts-links() }}` 会自动渲染默认的 Bootstrap 风格的分页按钮。

✅ 2、自定义每页数量

你可以通过 URL 参数或表单传入每页数量:

php
public function index(Request $request)
{
$perPage = $request-input('per_page', 10); // 默认每页 10 条
$posts = Post::paginate($perPage);

return view('posts.index', compact('posts'));
}

然后在页面上添加一个下拉菜单选择每页数量:

blade
<form method=GET
<select name=per_page onchange=this.form.submit()
<option value=5 {{ request('per_page') == '5' ? 'selected' : '' }}5</option
<option value=10 {{ request('per_page') == '10' ? 'selected' : '' }}10</option
<option value=20 {{ request('per_page') == '20' ? 'selected' : '' }}20</option
</select
</form

✅ 3、简单分页(SimplePaginate)

如果你只需要“上一页”和“下一页”,不需要显示所有页码,可以用 `simplePaginate()`:

php
$posts = Post::simplePaginate(10);

它比 `paginate()` 更轻量,只返回当前页、前一页、后一页的信息。

✅ 4、手动设置分页参数(如页码、路径等)

php
$posts = Post::paginate(10, ['*'], 'page', $request-input('page', 1));

或者指定自定义分页路径:

php
$posts = Post::paginate(10)-appends(['category' = $category]);

这会在分页链接中保留其他查询参数,例如:

/posts?page=2&category=laravel

✅ 5、分页数据信息

你可以访问分页对象的属性来获取更多信息:

blade
<p当前页: {{ $posts-currentPage() }}</p
<p总页数: {{ $posts-lastPage() }}</p
<p总记录数: {{ $posts-total() }}</p
<p每页数量: {{ $posts-perPage() }}</p
<p当前页数据: {{ $posts-count() }}</p

✅ 6、自定义分页视图

Laravel 支持自定义分页视图。例如,创建一个自定义的分页样式:

blade
{{ resources/views/vendor/pagination/bootstrap-4.blade.php }}
<nav
<ul class=pagination
@if ($paginator-onFirstPage())
<li class=page-item disabled
<span class=page-link&laquo;</span
</li
@else
<li class=page-item
<a class=page-link href={{ $paginator-previousPageUrl() }}&laquo;</a
</li
@endif

@foreach ($paginator-getUrlRange(1, $paginator-lastPage()) as $page = $url)
<li class=page-item {{ $page == $paginator-currentPage() ? 'active' : '' }}
<a class=page-link href={{ $url }}{{ $page }}</a
</li
@endforeach

@if ($paginator-hasMorePages())
<li class=page-item
<a class=page-link href={{ $paginator-nextPageUrl() }}&raquo;</a
</li
@else
<li class=page-item disabled
<span class=page-link&raquo;</span
</li
@endif
</ul
</nav

也可以使用 `vendor:publish` 发布分页视图:

bash
php artisan vendor:publish tag=laravel-pagination


✅ 7、使用 API 分页(JSON 返回)

如果是在 API 中使用,可以返回 JSON 格式的分页数据:

php
return response()-json([
'data' = $posts,
'meta' = [
'current_page' = $posts-currentPage(),
'from' = $posts-firstItem(),
'to' = $posts-lastItem(),
'per_page' = $posts-perPage(),
'total' = $posts-total(),
'last_page' = $posts-lastPage(),
'path' = $posts-path(),
]
]);

或者直接返回:

php
return $posts;

Laravel 会自动将分页对象转换为 JSON。

✅ 总结

| 方法 | 用途 |

| `paginate()` | 完整分页,包含所有页码 |
| `simplePaginate()` | 只有前后页,性能更好 |
| `appends()` | 添加额外参数到分页链接 |
| `links()` | 渲染分页链接 |
| `currentPage()` / `lastPage()` 等 | 获取分页信息 |

📚 参考文档

[Laravel Pagination Docs](https://laravel.com/docs/pagination)

如果你有具体需求,比如:
自定义分页样式
AJAX 分页
多条件搜索 + 分页
分页数据导出

欢迎继续提问!

Ai作答

📣 商家广告


广告招商

取名

广告招商

高防vps

广告招商


0

IP地址: 226.160.124.140

搜索次数: 0

提问时间: 2025-11-08 10:21:26

🛒 域名购买
87.gold
che.red
8.he.cn
chesou.com.cn
kkky.com.cn
327.net.cn
6.ac.cn
dk.gs
e-j.com.cn
75.gold

❓️ 热门提问
机房接地线铜排
懒人挂机电脑版
给我打开服务器
托管服务器是什么意思
江西电信服务器托管
注册域名和企业邮箱
.xyz是哪个国家的域名
搭建nginx服务器
云服务器安装windows10
vps购买
豌豆Ai站群搜索引擎系统

🌐 域名评估
saweb.cn
su.hb.cn
su7.hi.cn
oppo.sn.cn
musk.fashion
w.hb.cn
juzxe.cn
vivo.hk.cn
42.gs
qbdg.cn

⛏ 最新挖掘
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜

🖌 热门作画

🤝 关于我们:
豌豆Ai 域名 建站 站群 留痕 推广 评估 源码
开发Ai 工具 日记 价格 加盟 广告 流量 留言 联系

🗨 加入群聊
群

🔗 友情链接
サーチエンジンプログラム  臺灣搜尋引擎入口  ai提问

🧰 站长工具
Ai工具  whois查询  搜索

📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。

上一篇 79179 79180 79181 下一篇