Laravel Collections 如何实现分页?
How to Implement Pagination with Laravel Collections?
据我所知,Laravel 分页不适用于 Laravel collections (Eloquent)。例如:
$articles = Article::with('category')->where('status', 'submitted')->get();
我正在尝试使用截断的上述代码进行分页,但 where('status', 'submitted')
不起作用。
控制器
$articles = Article::paginate(10);
Blade
@foreach($articles->with('category')->where('status', 'submitted') as $article)
{ ... }
{{ $articles->links() }}
我收到一个错误。
在 where 子句后对查询进行分页:
$articles = Article::with('category')->where('status', 'submitted')->paginate(10);
在你的blade中:
{{ $articles->links() }}
@foreach($articles as $article)
{ ... }
@endforeach
添加到@Remul 的回答中,如果您仍想对集合进行分页,可以使用 forPage() 方法来实现。例如:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$chunk = $collection->forPage(2, 3);
// first argument is the page number
// second one is the number of items to show per page
$chunk->all();
据我所知,Laravel 分页不适用于 Laravel collections (Eloquent)。例如:
$articles = Article::with('category')->where('status', 'submitted')->get();
我正在尝试使用截断的上述代码进行分页,但 where('status', 'submitted')
不起作用。
控制器
$articles = Article::paginate(10);
Blade
@foreach($articles->with('category')->where('status', 'submitted') as $article)
{ ... }
{{ $articles->links() }}
我收到一个错误。
在 where 子句后对查询进行分页:
$articles = Article::with('category')->where('status', 'submitted')->paginate(10);
在你的blade中:
{{ $articles->links() }}
@foreach($articles as $article)
{ ... }
@endforeach
添加到@Remul 的回答中,如果您仍想对集合进行分页,可以使用 forPage() 方法来实现。例如:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$chunk = $collection->forPage(2, 3);
// first argument is the page number
// second one is the number of items to show per page
$chunk->all();