Я пытаюсь разбить свои категории на страницы shop.blade.php
, но получаю эту ошибку:
Вызов неопределенного метода Illuminate\Database\Eloquent\Builder::links() (Вид: D:\xampp\htdocs\miaceh\resources\views\shop.blade.php)
Вот мой MenuController.blade.php
if (request()->category) {
$menu = Menu::with('categories')->whereHas('categories', function ($query) {
$query->where('slug', request()->category);
});
$categories = Category::all();
$categoryName = $categories->where('slug', request()->category)->first()->name;
} else {
$menu = Menu::inRandomOrder()->take(10)->paginate(8);
$categories = Category::all();
$categoryName = 'Featured';
}
return view('shop')->with([
'menu' => $menu,
'categories' => $categories,
'categoryName' => $categoryName,
]);
и мой shop.blade.php
<div class = "category text-center">
@foreach($categories as $category)
<a href = "{{ route('menu.index', ['category' => $category->slug]) }}">
<div class = "card-category" style = "width: 10rem; height: 4rem;">
{{ $category->name }}
</div>
</a>
@endforeach
{{ $menu->links() }}
Как это решить?
Прямо сейчас, если у вас есть request()->category
, вы не добавляете разбиение на страницы в запрос $menu
. Просто добавь
$menu = Menu::with('categories')->whereHas('categories', function ($query) {
$query->where('slug', request()->category);
})->paginate(8);
В запросе меню отсутствует метод pagiante()
:
$menu = Menu::with('categories')->whereHas('categories', function ($query) {
$query->where('slug', request()->category);
})->paginate(8);
То, как вы выполнили свой запрос, возвращало класс QueryBuilder
, у которого нет метода links()
(разбиения на страницы). Таким образом, вы вернете набор данных, которые сможете разбить на страницы.