我有一个Laravel 4.2项目,可以从SQL DB中获取数据,并且可以显示在页面上。我可以选择单个记录,但是我还想显示所选记录附近的记录。
例如,我想显示所选记录上方和下方的5条记录。我不确定如何在Laravel中执行此操作。
$gradschoolrange = MOGRadschool::where('Title', '=', $gradschool)->get();
在上面的示例中,$ gradschool可能是“ Test College”,它将返回一个带有值的值,但是我也想使用这些值显示周围的所有其他相关记录。结果应如下所示:
答案 0 :(得分:1)
由于您的初始查询中没有指定顺序,因此我假设您要根据表中的主键(id
?-否则显然您需要更改)5个下一个/上一个记录?
鉴于ID可能不是数字顺序的,我们不能简单地假设前5行将是title = $gradschool
减5的行的ID,因此想知道这是否可行:>
$initial = MOGRadschool::where('Title', $gradschool)->first(); // get the initial row with the title of $gradschool
$result = MOGRadschool::where('id', '<', $initial->id)->take(5)->orderBy('id', 'DESC') // new query getting the previous 5 rows, by ID
->union(MOGRadschool::where('id', '>', $initial->id)->take(5)) // union a second query getting the next 5 rows by ID
->get() // get the result as a collection
->add($initial) // add the initial row to the collection
->sort(); // sort the collection (by id) so that the initial row is in the middle
因此,输出是一个集合,该集合在中间包含初始行,每行最多5条记录。如果需要,您还可以在第一行突出显示输出。
答案 1 :(得分:1)
如果您希望根据ID(我从您的问题中了解到的信息)进行操作,则应执行以下操作:
Box<T>
现在,集合应该看起来与您想要的结果类似。