尝试获取每个用户的最新任务,因此,如果有100个用户,我希望每页只显示10个,但是它不起作用。 添加分页方法时,出现以下错误:
方法Illuminate \ Database \ Eloquent \ Collection :: paginate不存在。
如果删除该方法,则一切正常,我得到预期的结果,我只是想分页。 这是我的代码:
$users = User::with('latestTask')->get()->paginate(10);
答案 0 :(得分:0)
您需要直接调用该方法,而无需使用get()
$users = User::with('latestTask')->paginate(10);
在刀片中,您可以使用
$variable_name->links()
答案 1 :(得分:0)
您无法对集合进行分页
$users = User::with('latestTask')->get();
要进行分页,应在雄辩的结果上使用方法paginate():
$users = User::with('latestTask')->paginate(10);
,然后在视图中放入链接:
{{ $users->links() }}
答案 2 :(得分:0)
使用分页时不需要使用 get()。只需遵循以下代码即可。
$users = User::with('latestTask')->paginate(10);
用户模型将自动处理请求,并以paginate($number_of_rows)
方法中的自变量的形式获取数据数量。
您还可以将 orderBy()用作方法链接格式,如下所示。
$users = User::with('latestTask')->orderBy($column,'asc')->paginate(10);
答案 3 :(得分:0)
尽管其他答案是正确的,但我想指出其背后的原因...
get()
执行查询并返回一个集合,这意味着您不再构建/修改sql查询
paginate()
在执行之前应在元素查询本身上调用,以便可以向查询中添加偏移量和限制...
这就是为什么应该这样
$users = User::with('latestTask')->paginate(10);
您可以在错误中看到
Illuminate\Database\Eloquent\Collection
方法不存在分页,因为分页不是集合的一部分
引用laravel文档https://laravel.com/docs/5.8/pagination
有几种分页项目的方法。最简单的方法是在&query builder 或 Eloquent查询
上使用分页方法