Laravel 个给定 ID 后的记录

Laravel records after a given ID

我正在尝试在给定的记录 ID 之后获取 10 条记录。

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

Laravel中没有after函数。还有其他方法吗?

你是说 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();

使用另一个 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

作为 ,您应该按 id 列对结果进行排序,因为如果没有 order by statement,则无法保证结果的顺序。