Laravel在给定ID后记录

时间:2015-01-04 15:09:44

标签: php laravel laravel-4

我试图在给定的记录ID后获得10条记录。

$media =  Media::where('active', '=', 1)->after('id',$after)->take(10)->get();

Laravel中没有after功能。还有另一种方法吗?

2 个答案:

答案 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语句,则无法保证结果的顺序。