如何在Laravel Blade中实现多集合独立分页并区分分页链接?
实现Laravel中两个集合的独立分页导航
要让jobs和featuredJobs两个集合拥有独立的分页导航,需要解决分页参数冲突问题,并修正视图中的分页链接调用,具体步骤如下:
1. 修改控制器:指定独立的分页参数名
Laravel分页默认使用page作为查询参数,两个分页集合共用该参数会导致页码互相干扰。我们需要给每个分页实例指定唯一的参数名:
$jobs = Job::with('employer', 'tags') ->latest() ->paginate(10, ['*'], 'jobs-page'); // 为jobs分页指定参数名jobs-page $featuredJobs = Job::with('employer', 'tags') ->latest() ->where('featured', 1) ->paginate(6, ['*'], 'featured-jobs-page'); // 为featuredJobs分页指定参数名featured-jobs-page $tags = Tag::all(); return view('job.index', compact('jobs', 'tags', 'featuredJobs'));
注:原代码中重复调用了
latest(),已移除重复部分,不影响排序逻辑。
2. 修正视图:调用各自的分页链接
将视图中复用的$jobs->links()替换为featuredJobs集合自己的分页方法:
@foreach ($jobs as $job) <!-- Display job details --> @endforeach {{ $jobs->links() }} @foreach ($featuredJobs as $featuredJob) <!-- Display featured job details --> @endforeach {{ $featuredJobs->links() }} <!-- 使用featuredJobs自身的分页链接 -->
修改完成后,两个集合的分页导航会分别使用jobs-page和featured-jobs-page作为查询参数,实现完全独立的分页控制,切换其中一个集合的页码不会影响另一个集合的显示。
内容的提问来源于stack exchange,提问作者Ahamed Rasni Nathees
相关产品推荐
相关产品推荐

