初学者です。laravelでアプリを作っています。
以下のことで困っております。
どなたか、ご教授いただければと思い、投稿させていただきました。
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
Class "App\Shop" not found
該当のソースコード
PHP
1ShopController.php 2<?php 3 4namespace App\Http\Controllers; 5 6use App\Shop; 7use Illuminate\Http\Request; 8 9class ShopController extends Controller 10{ 11 /** 12 * Display a listing of the resource. 13 * 14 * @return \Illuminate\Http\Response 15 */ 16 public function index() 17 { //shopモデルのデータを全て取り出して、indexビューに送る 18 $shops = Shop::all(); 19 return view('index', ['shops' => $shops]); 20 } 21 22 /** 23 * Show the form for creating a new resource. 24 * 25 * @return \Illuminate\Http\Response 26 */ 27 public function create() 28 { 29 // 30 } 31 32 /** 33 * Store a newly created resource in storage. 34 * 35 * @param \Illuminate\Http\Request $request 36 * @return \Illuminate\Http\Response 37 */ 38 public function store(Request $request) 39 { 40 // 41 } 42 43 /** 44 * Display the specified resource. 45 * 46 * @param \App\Models\Shop $shop 47 * @return \Illuminate\Http\Response 48 */ 49 public function show(Shop $shop) 50 { 51 // 52 } 53 54 /** 55 * Show the form for editing the specified resource. 56 * 57 * @param \App\Models\Shop $shop 58 * @return \Illuminate\Http\Response 59 */ 60 public function edit(Shop $shop) 61 { 62 // 63 } 64 65 /** 66 * Update the specified resource in storage. 67 * 68 * @param \Illuminate\Http\Request $request 69 * @param \App\Models\Shop $shop 70 * @return \Illuminate\Http\Response 71 */ 72 public function update(Request $request, Shop $shop) 73 { 74 // 75 } 76 77 /** 78 * Remove the specified resource from storage. 79 * 80 * @param \App\Models\Shop $shop 81 * @return \Illuminate\Http\Response 82 */ 83 public function destroy(Shop $shop) 84 { 85 // 86 } 87} 88
PHP
1web.php 2<?php 3 4//ドメイン名に続けてshopsの場合shopControllerのindexメソッドを呼び出す 5Route::get('/shops', 'App\Http\Controllers\ShopController@index')->name('shop.list'); 6 7Route::get('/', function () { 8 return redirect('/shops'); 9}); 10
PHP
1index.blade.php 2<!DOCTYPE html> 3<html lang="ja"> 4 5<head> 6 <meta charset="UTF-8"> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <title>Bestラーメン</title> 10 <style> 11 body { 12 padding: 10px 13 } 14 15 ; 16 </style> 17</head> 18 19<body> 20 <h1>お店一覧</h1> 21 22 @foreach ($shops as $shop) 23 <p> 24 {{ $shop->category->name }}, 25 {{ $shop->name}}, 26 {{$shop->addres}} 27 </p> 28 @endforeach 29</body> 30 31</html>
PHP
1Shop.php 2<?php 3 4namespace App; 5 6use Illuminate\Database\Eloquent\Model; 7 8class Shop extends Model 9{ //shopモデルとcategoryモデルの関連付 10 public function category() 11 { //belongToは所属する 12 return $this->belongsTo('App\Category'); 13 } 14} 15
PHP
1"autoload": { 2 "psr-4": { 3 "App\": "app/", 4 "Database\Factories\": "database/factories/", 5 "Database\Seeders\": "database/seeders/" 6 } 7 }, 8 "autoload-dev": { 9 "psr-4": { 10 "Tests\": "tests/" 11 } 12 },
試したこと
Appフォルダの中に指定されたファイルがあるのにかかわらずnot foundが出てしまいます。composer dump-autoloadでプロジェクト内のクラスを再生成しましたが解消できませんでした
補足情報(FW/ツールのバージョンなど)
PHP 8.0.3
Laravel Framework 8.67.0
回答1件
あなたの回答
tips
プレビュー