【发布时间】:2016-08-12 09:56:14
【问题描述】:
在 eloquent 中,如何跳过 10 行然后获取表格的其余部分?
User::skip(10)->all();
上述方法不起作用,但它让您知道我在寻找什么。
【问题讨论】:
标签: laravel eloquent laravel-5.2
在 eloquent 中,如何跳过 10 行然后获取表格的其余部分?
User::skip(10)->all();
上述方法不起作用,但它让您知道我在寻找什么。
【问题讨论】:
标签: laravel eloquent laravel-5.2
试试这个:
$count = User::count();
$skip = 10;
User::skip($skip)->take($count - $skip)->get();
一个查询:
User::skip($skip)->take(18446744073709551615)->get();
很丑,不过是个例子from official MySQL manual:
检索从某个偏移量到结果末尾的所有行 设置,您可以为第二个参数使用一些较大的数字。这 语句检索从第 96 行到最后一行的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
【讨论】:
User::skip(10)->get()->all();
users offset 10)。数据库作为 User::all() 工作正常。
->take(18446744073709551615),这是一个丑陋的解决方案,但它来自官方MySQL手册:dev.mysql.com/doc/refman/5.7/en/select.html#id4651990
试试这样的东西肯定会起作用..
$temp = User::count();
$count = $temp - 10;
$data = User::take($count)->skip(10)->get();
【讨论】:
Laravel 5 将 Eloquent 结果作为 Collection 返回。 所以你可以使用collenction函数slice();
$users = User::get();
$slicedUsers = $users->slice(10);
【讨论】: