laravel 商品詳細ページ作成

実現したいこと

ここに実現したいことを箇条書きで書いてください。
現在laravelでメニュー表を作成していて、topページの画像をクリックしたとき、その商品の詳細ページ
を作りたくてコードを記入しているのですが上手くページ遷移出来ず、画面が真っ白になります。laravelに
詳しい方がいたら教えていただきたいです。文字制限上①web.php ②topcontroller ③top/index.phpを
載せています。問題点はtop/index.blade.phpから/top/show.blade.phpに商品が反映されません。

前提

ここに質問の内容を詳しく書いてください。
(例)
TypeScriptで●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

(web.php) <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\CategoryController; use App\Http\Controllers\ProductController; use App\Http\Controllers\TopController; use Illuminate\Support\Facades\App; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Auth::routes(); Route::resource('category', CategoryController::class); Route::resource('product', productController::class); Route::get('/', [ProductController::class, 'productTop']); Route::get('product/{id}',[ProductController::class, 'show']); Route::get('top',[TopController::class, 'index']); Route::get('top/{id}',[TopController::class, 'show'])->name('top.show'); Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

(topcontroller) <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\ProductController; use App\Http\Controllers\CategoryController; use App\Models\Category; use App\Models\Product; class TopController extends Controller { // public function index(){ $categories = Category::latest()->get(); return view('top.index', ['categories' => $categories]); } public function show($id){ $product = Product::find($id); return view('top.show',compact('product')); } } ```ここに言語を入力 コード
(index.blade.php) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link href="{{ asset('css/app.css') }}" rel="stylesheet"> </head> <body> <div class="menu-container"> @foreach($categories as $category) <div class="menu-category"> {{$category->name}} <hr> <div class="menu-row"> @foreach(App\Models\Product::where('category_id',$category->id)->get() as $product) <div class="menu-card card"> <a href="{{ url('top.show', $product->id) }}"> <img src="{{ asset('images') }}/{{ $product->image }}" class="card-img-top" alt="Product Image"> </a> <div class="card-body"> <h5 class="card-title">{{ $product->name }}</h5> <span class="card-price">{{ $product->price }} 円 + 税</span> <hr> <p class="card-text">{{ $product->description }}</p> </div> </div> @endforeach </div> </div> @endforeach </div> </body> </html>

コメントを投稿

0 コメント