Laravel 6分页实现求助:广告站点分页按钮无法切换页面
解决Laravel广告站点分页问题
你已经在控制器里用对了分页的核心逻辑,问题出在前端的分页按钮是硬编码的静态链接,没有和Laravel的分页实例绑定,所以点击后没法切换页面加载剩余广告。下面一步步帮你搞定:
1. 替换静态分页按钮为Laravel自动生成的分页链接
Laravel的分页实例自带links()方法,能自动生成带正确跳转逻辑的分页按钮,还会自动处理当前页码、禁用不可点击的按钮(比如第一页的「上一页」)。
把你模板里硬编码的分页代码:
<ul class="pagination pagination-sm pull-right"> <li class="disabled"><a href="">«</a></li> <li class="active"><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> <li><a href="#">4</a></li> <li><a href="#">»</a></li> </ul>
替换成:
<div class="pull-right"> {{ $annonces->links('pagination::bootstrap-4') }} </div>
小提示:
pagination::bootstrap-4是适配Bootstrap4的默认分页视图,如果你用的是Bootstrap3,可以换成pagination::bootstrap-3;直接写{{ $annonces->links() }}也能让Laravel自动匹配默认样式。
2. 确认控制器代码无需调整
你的控制器逻辑是完全正确的:
public function index() { $categories = Category::all(); $annonces = Annonce::paginate(36); return view('annonces.index')->with([ 'categories' => $categories, 'annonces' => $annonces, ]); }
paginate(36)会自动识别URL中的page参数,返回对应页码的36条广告数据,不需要手动处理分页逻辑。
3. 自定义分页样式(可选)
如果默认分页样式和你的站点UI不匹配,可以发布Laravel的分页视图文件来修改:
运行Artisan命令:
php artisan vendor:publish --tag=laravel-pagination
这个命令会把分页视图文件放到resources/views/vendor/pagination目录下,你可以修改对应版本的视图文件(比如bootstrap-4.blade.php),调整class属性来匹配你站点的pagination pagination-sm样式。
做完这些修改后,点击分页按钮就能正常切换页面,加载第2、3页及后续的广告内容了。
内容的提问来源于stack exchange,提问作者Hajar Lamine
相关产品推荐
相关产品推荐

