为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据特定类别对产品进行分页 laravel-7

如何根据特定类别对产品进行分页 laravel-7

PHP
月关宝盒 2023-09-22 16:07:24
我正在尝试查看检索类别中的所有产品并将它们分页到页面中。我能够获取任何类别中的所有产品,并且工作正常,但是当我尝试对它们进行分页时,它会抛出此错误:方法 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">&dollar; {{ $product->price }}</h6>                    </a>                </div>            @endforeach               {{  $category->products->links()  }}        </div>    @empty        <h1>There are no categories yet!</h1>    @endforelse    @endsection
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

您可以在类别而不是产品上添加分页。请尝试这个代码


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">&dollar; {{ $product->price }}</h6>

                    </a>

                </div>

            @endforeach   

            {{  $products->links()  }}

        </div>

    


@endsection


查看完整回答
反对 回复 2023-09-22
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

正确的方式:


<?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() }}


查看完整回答
反对 回复 2023-09-22
  • 2 回答
  • 0 关注
  • 57 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信