我试图查看检索一个类别中的所有产品,并将它们分页到页面中。
我能够将所有产品都包含在任何类别中,并且工作正常,但是当我试图对它们进行分页时,它会抛出以下错误:
不存在Illuminate\Database\Eloquent\Collection::links
方法。(浏览: C:\xampp\htdocs\E-Commerce\resources\views\pages\products.blade.php).
这是我的密码。
public function show(Category $category, Request $request)
{
$categories = Category::where('id', $request->category->id)->paginate(12);
return view('pages.products')->with([
'categories' => $categories,
]);这是我的看法。
@extends('layouts/default')
@section('title', '| Products')
@section('content')
@forelse ($categories as $category)
<h1 class="text-center">{{ $category->name }}</h1>
<div class="row mt-5 m-5">
@foreach ($category->products as $product)
<div class="cols m-4 shadow-lg product product-box">
<a href="">
<h4 class="text-center">{{ $product->name }}</h4>
<img class="m-auto" src="{{ asset('images/welcome2.jpg') }}" width="150px">
<br>
<small class="text-center">{{ $product->details }}</small>
<br>
<h6 class="float-right mr-1">$ {{ $product->price }}</h6>
</a>
</div>
@endforeach
{{ $category->products->links() }}
</div>
@empty
<h1>There are no categories yet!</h1>
@endforelse
@endsection发布于 2020-08-10 15:16:59
您在类别上添加分页,而不是在产品上添加分页。请试试这段代码
public function show(Category $category, Request $request)
{
$category = Category::where('id', $request->category->id)->first();
$products = $category->products()->paginate(15);
return view('pages.products')->with([
'products' => $products,
'category' => $category'
]);在你看来
@extends('layouts/default')
@section('title', '| Products')
@section('content')
<h1 class="text-center">{{ $category->name }}</h1>
<div class="row mt-5 m-5">
@foreach ($products as $product)
<div class="cols m-4 shadow-lg product product-box">
<a href="">
<h4 class="text-center">{{ $product->name }}</h4>
<img class="m-auto" src="{{ asset('images/welcome2.jpg') }}" width="150px">
<br>
<small class="text-center">{{ $product->details }}</small>
<br>
<h6 class="float-right mr-1">$ {{ $product->price }}</h6>
</a>
</div>
@endforeach
{{ $products->links() }}
</div>
@endsection发布于 2020-08-10 15:01:05
正确的方法:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
public function index()
{
$users = DB::table('users')->paginate(15);
return view('user.index', ['users' => $users]);
}
}此外,您还可以使用简化:
$users = User::where('votes', '>', 100)->simplePaginate(15);其结果是:
<div class="container">
@foreach ($users as $user)
{{ $user->name }}
@endforeach
</div>
{{ $users->links() }}https://stackoverflow.com/questions/63342454
复制相似问题