我试图在给定的记录ID之后获取10条记录。
$media = Media::where('active', '=', 1)->after('id',$after)->take(10)->get();
拉拉维尔没有after
功能。有没有其他方法可以做到这一点?
使用另一个where
子句:
$media = Media::where('active', 1) // don't need the "="
->where('id', '>', $after)
->take(10)
->get();
这将在 SQL 中构建以下查询(假设您的$table
在媒体模型中定义为"媒体"):
SELECT *
FROM media
WHERE active = 1
AND id > $after
LIMIT 10
正如@lukasgeiter提到的,您应该按 id 列对结果进行排序,因为如果没有 order by 语句,则无法保证结果的顺序。
你是说id > $after
吗?
$media = Media::where('active', '=', 1)
->where('id', '>', $after)
->take(10)
->get();
还要确保结果将按 id 排序,并且您在 $after
之后取前 10 个:
$media = Media::where('active', '=', 1)
->where('id', '>', $after)
->orderBy('id', 'asc')
->take(10)
->get();