我有一个包含数据的数据库,我想跳过/抵消前3行。
$data = Data::orderBy('created_at','desc')->skip(3)->paginate(1);
$data = Data::orderBy('created_at','desc')->offset(3)->paginate(1);
两个查询都从头开始返回所有结果。有人可以帮我吗?
谢谢。
答案 0 :(得分:2)
skip
似乎不适用于paginate
。您可以做的是使用whereNotIn
排除该行。
$data = Data::orderBy('created_at','desc')->whereNotIn('id', [1,2,3])->paginate(1);
如果您不知道id
,则可以查询和使用结果。
$id = Data::orderBy('created_at','desc')->take(3)->pluck('id');
$data = Data::orderBy('created_at','desc')->whereNotIn('id', $id)->paginate(1);
答案 1 :(得分:0)
您不能同时使用.gitignore
和paginate()
。您可以做的是:
skip()
并根据您的自定义实现更新并跳过这些值并采用这些值。
如果您确实想跳过前三行,并且永远不要在分页中使用它们,则可以执行以下操作:
$data = Data::orderBy('created_at','desc')->skip(3)->take(10)->get();
请参阅documentation以供参考。