繁体   English   中英

Laravel在给定ID后记录

[英]Laravel records after a given ID

我想在给定的记录ID后得到10条记录。

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

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

你的意思是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子句

$media =  Media::where('active', 1) // don't need the "="
               ->where('id', '>', $after)
               ->take(10)
               ->get();

这将在SQL中构建以下查询(假设您的$table在Media模型中定义为“media”):

SELECT * 
  FROM media 
 WHERE active = 1 
   AND id > $after 
 LIMIT 10

正如@lukasgeiter所提到的 ,您应该按id列来排序结果,因为如果没有order by语句,则无法保证结果的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM