こんにちは。
Laravelで/shop/{user}のような形で{user}の値次第で表示されるページが変わるようにしたいです。
{user}の値は渡せていると思うのですが、次のエラーメッセージが表示されてしまいます。
Missing required parameter for [Route: shop] [URI: shop/{user}] [Missing parameter: user]. (View: C:\Users\sample\Desktop\practice\resources\views\partials\navbar.blade.php)
web.phpとController、viewは以下のようになっています。
web.php
php
1Route::get('/shop/{user}', [App\Http\Controllers\CartController::class, 'shop'])->name('shop');
CartController
php
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Models\Product; 6use App\Models\User; 7 8use Illuminate\Http\Request; 9 10class CartController extends Controller 11{ 12 public function shop($user) 13 { 14 $user = User::findOrFail($user); 15 return view('shop')->withTitle('E-COMMERCE STORE | SHOP')->with(['user' => $user]); 16 } 17} 18
shop.blade.php
php
1@extends('layouts.app2') 2 3@section('content') 4<div class="container" style="margin-top: 80px"> 5 <nav aria-label="breadcrumb"> 6 <ol class="breadcrumb"> 7 <li class="breadcrumb-item"><a href="/">Home</a></li> 8 <li class="breadcrumb-item active" aria-current="page">Shop</li> 9 </ol> 10 </nav> 11 <div class="row justify-content-center"> 12 <div class="col-lg-12"> 13 <div class="row"> 14 <div class="col-lg-7"> 15 <h4>Products In Our Store</h4> 16 </div> 17 </div> 18 <hr> 19 <div class="row"> 20 @foreach($user->products as $pro) 21 <div class="col-lg-3"> 22 <div class="card" style="margin-bottom: 20px; height: auto;"> 23 <img src="/storage/images/{{ $pro->image_path }}" class="card-img-top mx-auto" style="height: 150px; width: 150px;display: block;" alt="{{ $pro->image_path }}"> 24 <div class="card-body"> 25 <a href=""> 26 <h6 class="card-title">{{ $pro->name }}</h6> 27 </a> 28 <p>${{ $pro->price }}</p> 29 <form action="{{ route('cart.store') }}" method="POST"> 30 {{ csrf_field() }} 31 <input type="hidden" value="{{ $pro->id }}" id="id" name="id"> 32 <input type="hidden" value="{{ $pro->name }}" id="name" name="name"> 33 <input type="hidden" value="{{ $pro->price }}" id="price" name="price"> 34 <input type="hidden" value="{{ $pro->image_path }}" id="img" name="img"> 35 <input type="hidden" value="1" id="quantity" name="quantity"> 36 <div class="card-footer" style="background-color: white;"> 37 <div class="row"> 38 <button class="btn btn-secondary btn-sm" class="tooltip-test" title="add to cart"> 39 <i class="fa fa-shopping-cart"></i> add to cart 40 </button> 41 </div> 42 </div> 43 </form> 44 </div> 45 </div> 46 </div> 47 @endforeach 48 </div> 49 </div> 50 </div> 51</div> 52@endsection
3日間、いろいろいじくってみたのですが結局解決しなかったので、こちらで質問させていただきました。問題箇所わかる方いらっしゃいましたら教えていただけると幸いです。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。