php 如何在laravel中创建分页

nukf8bse  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(118)

我希望分页发生在渴望加载的关系,但当我使用它,我得到一个错误。Method Illuminate\Database\Eloquent\Collection::links does not exist.这只发生在我在视图中使用{{ $SubjectReport->reports->links() }}时,而不是一切正常,因为当我删除这个{{ $SubjectReport->reports->links() }}时,页面加载的是paginate方法中设置的数字。
这是我目前所尝试的
这是我的控制器

$SubjectReport = Subject::with(['assesment.curriculumUnit',
    'reports' => function($q) {
    $q->orderBy('id','DESC')->paginate(2);
}])->where('id',2)->first();
 
return view('learner.assesment_reports',compact('SubjectReport'));

以下是我的观点

@foreach ($SubjectReport->reports as $key => $report)

@endforeach

{{ $SubjectReport->reports->links() }}
kkbh8khc

kkbh8khc1#

不幸的是,with不能正确地处理分页。它只返回Collection中的部分数据,而不是Paginator。对关系进行分页的最佳方法是:

$SubjectReport = Subject::with('assesment.curriculumUnit')->where('id',2)->first();
$SubjectReport->reports = $SubjectReport->reports()->orderBy('id','DESC')->paginate(2);

相关问题