#php #laravel #web-applications #laravel-7 #web-development-server
#php #laravel #веб-приложения #laravel-7 #веб-разработка-сервер
Вопрос:
Я пытаюсь просмотреть, получить все товары в категории, а также разбить их на страницы.
Я могу получить все продукты внутри любой категории, и это работает нормально, но когда я пытаюсь разбить их на страницы, это выдает эту ошибку:
Метод IlluminateDatabaseEloquentCollection::links не существует. (Посмотреть: C:xampphtdocsE-Commerceresourcesviewspa&esproducts.blade.php).
Вот мой код.
public function show(Cate&ory $cate&ory, Request $request)
{
$cate&ories = Cate&ory::where('id', $request-&&t;cate&ory-&&t;id)-&&t;pa&inate(12);
return view('pa&es.products')-&&t;with([
'cate&ories' =&&t; $cate&ories,
]);
И вот мое мнение.
@extends('layouts/default')
@section('title', '| Products')
@section('content')
@forelse ($cate&ories as $cate&ory)
<h1 class="text-center"&&t;{{ $cate&ory-&&t;name }}</h1&&t;
<div class="row mt-5 m-5"&&t;
@foreach ($cate&ory-&&t;products as $product)
<div class="cols m-4 shadow-l& product product-box"&&t;
<a href=""&&t;
<h4 class="text-center"&&t;{{ $product-&&t;name }}</h4&&t;
<im& class="m-auto" src="{{ asset('ima&es/welcome2.jp&') }}" width="150px"&&t;
<br&&t;
<small class="text-center"&&t;{{ $product-&&t;details }}</small&&t;
<br&&t;
<h6 class="float-ri&ht mr-1"&&t;amp;dollar; {{ $product-&&t;price }}</h6&&t;
</a&&t;
</div&&t;
@endforeach
{{ $cate&ory-&&t;products-&&t;links() }}
</div&&t;
@empty
<h1&&t;There are no cate&ories yet!</h1&&t;
@endforelse
@endsection
Комментарии:
1. Можете ли вы предоставить файл класса Cate&ory, чтобы мы могли видеть?
2. У меня есть две таблицы Cate&ory, Product с отношением «многие ко многим» и сводная таблица cate&ory_product.
3. <?пространство имен php App; используйте App Cate&ory; используйте IlluminateDatabaseEloquentModel; класс Product расширяет модель { общедоступные функции cate&ories() { return $this-&&t;belon&sToMany(‘Приложение Категория’); } }
4. <?пространство имен php App; используйте IlluminateDatabaseEloquentModel; используйте App Product; категория класса расширяет модель { общедоступная функция products() { return $this-&&t;belon&sToMany(‘Приложение продукт’); } }
Ответ №1:
Вы добавляете разбиение на страницы в своих категориях, а НЕ в продуктах. Пожалуйста, попробуйте этот код
public function show(Cate&ory $cate&ory, Request $request)
{
$cate&ory = Cate&ory::where('id', $request-&&t;cate&ory-&&t;id)-&&t;first();
$products = $cate&ory-&&t;products()-&&t;pa&inate(15);
return view('pa&es.products')-&&t;with([
'products' =&&t; $products,
'cate&ory' =&&t; $cate&ory'
]);
И на ваш взгляд
@extends('layouts/default')
@section('title', '| Products')
@section('content')
<h1 class="text-center"&&t;{{ $cate&ory-&&t;name }}</h1&&t;
<div class="row mt-5 m-5"&&t;
@foreach ($products as $product)
<div class="cols m-4 shadow-l& product product-box"&&t;
<a href=""&&t;
<h4 class="text-center"&&t;{{ $product-&&t;name }}</h4&&t;
<im& class="m-auto" src="{{ asset('ima&es/welcome2.jp&') }}" width="150px"&&t;
<br&&t;
<small class="text-center"&&t;{{ $product-&&t;details }}</small&&t;
<br&&t;
<h6 class="float-ri&ht mr-1"&&t;amp;dollar; {{ $product-&&t;price }}</h6&&t;
</a&&t;
</div&&t;
@endforeach
{{ $products-&&t;links() }}
</div&&t;
@endsection
Комментарии:
1. Я пробую это, это показывает другую ошибку, что pa&inate не существует
2. О, извините, я исправил сейчас. Я добавляю () к продуктам
3.
$products = $cate&ory-&&t;products()-&&t;pa&inate(15);
4. Это работает! Большое вам спасибо.
5. Пожалуйста. пожалуйста, примите ответ, чтобы другим пользователям было легче найти ответ на эту проблему
Ответ №2:
Правильный способ:
<?php
namespace AppHttpControllers;
use AppHttpControllersController;
use IlluminateSupportFacadesDB;
class UserController extends Controller
{
public function index()
{
$users = DB::table('users')-&&t;pa&inate(15);
return view('user.index', ['users' =&&t; $users]);
}
}
Также вы можете использовать simplepa&ination:
$users = User::where('votes', '&&t;', 100)-&&t;simplePa&inate(15);
И представление результата:
<div class="container"&&t;
@foreach ($users as $user)
{{ $user-&&t;name }}
@endforeach
</div&&t;
{{ $users-&&t;links() }}
Комментарии:
1. Я все еще не понимаю, я хочу отобразить все товары внутри одной категории и разбить товары на страницы.