Поскольку в вашем начальном запросе не указан порядок, я предполагаю, что вы хотите 5 следующих / предыдущих записей в соответствии с первичным ключом (id
? - если нет, вам, очевидно, нужно изменить это) в таблице?
Учитывая, что идентификаторы не могут быть численно последовательными, мы не можем просто предположить, что предыдущие 5 строк будут идентификатором строки с заголовком = $gradschool
минус 5, поэтому задаемся вопросом, может ли это сработать:
$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 записей с каждой стороны.У вас также есть начальная строка, чтобы выделить вывод, если вам это нужно.