質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

745閲覧

Laravelの個別URLの表示ができない。

toyop

総合スコア30

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/05/20 08:58

こんにちは。

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日間、いろいろいじくってみたのですが結局解決しなかったので、こちらで質問させていただきました。問題箇所わかる方いらっしゃいましたら教えていただけると幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

View: C:\Users\sample\Desktop\practice\resources\views\partials\navbar.blade.php

恐らくエラーの出ているbladeでroute('shop')とか書いてるんじゃないでしょうか
ルートパラメーターを必須にするならblade上の記述でも

route('shop', ['user'=> 1]);

のようにパラメーター指定しましょう
ルートパラメーターが必須でないなら必須扱いをやめましょう ※オプションパラメーター

投稿2021/05/20 10:04

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

php

1Route::get('/shop/{user}', [App\Http\Controllers\CartController::class, 'shop'])->name('shop');

php

1Route::get('/shop/{user}', 'CartController@shop')->name('shop');

で渡る気がする。

投稿2021/05/20 09:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問