我试图在给定的记录ID后获得10条记录。
$media = Media::where('active', '=', 1)->after('id',$after)->take(10)->get();
Laravel中没有after
功能。还有另一种方法吗?
答案 0 :(得分:2)
您的意思是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();
答案 1 :(得分:1)
使用其他where
clause:
$media = Media::where('active', 1) // don't need the "="
->where('id', '>', $after)
->take(10)
->get();
这将在SQL中构建以下查询(假设您的$table
在媒体模型中被定义为“media”):
SELECT *
FROM media
WHERE active = 1
AND id > $after
LIMIT 10
作为@lukasgeiter mentions,您应该按id列排序结果,因为如果没有order by语句,则无法保证结果的顺序。