首页 > 解决方案 > 我的显示功能在 Laravel 中不起作用。URL显示特定的ID,但在页面数据不会来

问题描述

当我单击产品页面上的特定产品时,它会将我定向到单个产品页面。特定的产品 ID 也显示在 URL 中。但是数据不会被传递。我的单个产品页面没有显示特定的产品数据。

这是我的控制器。

SingleProductController.php


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Product;
use App\Category;

class SingleProductController extends Controller
{
    public function index(Product $product)
    {
        $arr['product'] = $product;
        return view('singleproducts')->with($arr);

    }

    
    public function create()
    {
        //
    }

   
    public function store(Request $request)
    {
        //
    }

    
    public function show($id)
    { 
    

        $product = Product::find($id);
       
        return view ('singleproducts')->with(['product'=>$product]);
    }

   
    public function edit($id)
    {
        //
    }

    
    public function update(Request $request, $id)
    {
        //
    }

   
    public function destroy($id)
    {
        //
    }
}

这是我的刀片文件。

singleproducts.blade


@extends('layouts.singleproducts')
@section('content')

   <h2 class="font-size-25 text-lh-1dot2">{{ $product ['prod_name'] }}  </h2>

 <div class="mb-4">
                                    <div class="d-flex align-items-baseline">
                                        <ins class="font-size-36 text-decoration-none">{{ $product ['prod_price'] }}</ins>
                                        <del class="font-size-20 ml-2 text-gray-6">$2,299.00</del>
                                    </div>
                                </div>
    
@endsection

这是我的路线。

web.php

Route::get('/singleproducts', 'SingleProductController@index')->name('singleproducts');
Route::get('/singleproducts/{id}', 'SingleProductController@show')->name('eachproduct');

为什么我的显示功能不起作用?

标签: phplaravel

解决方案


路由.php

Route::get('/singleproducts', 'SingleProductController@index')->name('singleproducts');
Route::get('/eachproduct/{id}', 'SingleProductController@show')->name('eachproduct');

产品列表页面

@if (isset($products) && count($products) > 0)
    @foreach ($products as $product)
    <div class="blog_box_inner" style="cursor: pointer;" >
        <h1 class="blog_inner_heading">
            <a href="/eachproduct/{{$product['id']}}" class="blog_readmore_link">
                {{$product['prod_name']}}
            </a>
        </h1>
    </div>
    @endforeach
    @endif

单页

<h2 class="font-size-25 text-lh-1dot2">{{ $product['prod_name']}}  </h2>

控制器

public function index() {
    $products = Product::orderBy('id', 'DESC')->get();
    return view('')->with(compact('products'));
}

public function show($id) {
    $product = Product::find($id);
     return view('')->with(compact('product'));
}

完全希望它对您有帮助。


推荐阅读