Laravel偏移不会偏移和/或跳过不会跳过

时间:2019-02-14 01:18:11

标签: laravel eloquent laravel-5.7

我有一个包含数据的数据库,我想跳过/抵消前3行。

    $data = Data::orderBy('created_at','desc')->skip(3)->paginate(1);
    $data = Data::orderBy('created_at','desc')->offset(3)->paginate(1);

两个查询都从头开始返回所有结果。有人可以帮我吗?

谢谢。

2 个答案:

答案 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)

您不能同时使用.gitignorepaginate()。您可以做的是:

skip()并根据您的自定义实现更新并跳过这些值并采用这些值。

如果您确实想跳过前三行,并且永远不要在分页中使用它们,则可以执行以下操作:

$data = Data::orderBy('created_at','desc')->skip(3)->take(10)->get();

请参阅documentation以供参考。