Если ваша цель состоит в том, чтобы разбить отношение на части из того, что я вижу, но вы запрашиваете родительскую модель. Вот что не так. Вы должны полностью изменить свою логику, так как подзапрос не отображает отношения внутри модели Laravel. Он просто используется как условие для извлечения этой модели.
Ваш запрос должен выглядеть следующим образом:
$page = Page::where('slug', $slug)->with(['subpages'=>function($q) {
$q->where('visible', 1)->orderBy('order', 'asc') // ->paginate(9); This is not necessary
}])->first();
Теперь, когда у вас есть родительская модель, вы можете выполнить новый запрос для отношенияи там вы должны вызвать метод paginate
:
Я не думаю, что было бы хорошей практикой делать что-то подобное в вашем виде лезвия:
{{ $page->subpages()->paginate(9)->links() }}
НоЛучше реализовать новую переменную:
// Previous code that retrieves the page
$subpages = $page->subpages()->paginate(9);
return response()->view('your.blade.view', compact('page', 'subpages');
, теперь вы можете использовать переменную subpages
, которая содержит разбитые на страницы результаты, на ваш взгляд