Larabelでこちらのサイト(https://qiita.com/sano1202/items/6021856b70e4f8d3dc3d )を参考にプロジェクトを作成しましたが、コントローラーとビューを作成して http://localhost:8080/book リストでアクセスしたところ、Target class [BookController] does not exist.のエラーが発生してしまいました。
基本的なルーティングしかしていないはずですがどこが間違っているでしょうか。
http://localhost:8080/ でデフォルトのビューは問題なく表示されます。
開発環境はDockerを使っています。Larabelのバージョンは9.52.4です。
検証のためにTestControllerを追加していますがこちら( http://localhost:8080/test )も同じようにエラーがでます。
src\routes\web.php
1<?php 2 3use Illuminate\Support\Facades\Route; 4use Illuminate\Http\Request; 5use App\Http\Controllers\BookController; 6use App\Http\Controllers\TestController; 7 8Route::get('/', function () { 9 return view('welcome'); 10}); 11 12Route::resource('/book', BookController::class); 13 14Route::get('/test', [TestController::class, 'index']);
src\app\Http\Controllers\BookController.php
1<?php 2 3namespace App\Http\Controllers; 4 5use App\Book; 6 7class BookController extends Controller 8{ 9 public function index() 10 { 11 $books = Book::all(); 12 return view('book/index', compact('books')); 13 } 14 15 public function edit($id) 16 { 17 $book = Book::findOrFail($id); 18 return view('book/edit', compact('book')); 19 } 20 21 public function show($id) 22{ 23 return view('book', ['book' => Book::findOrFail($id)]); 24} 25}
src\app\Http\Controllers\TestController.php
1<?php 2 3namespace App\Http\Controllers; 4 5class TestController extends Controller 6{ 7 public function index() 8 { 9 $msg = 'こんにちは'; 10 return $msg; 11 } 12}
src\app\Providers\RouteServiceProvider.php
1<?php 2 3namespace App\Providers; 4 5use Illuminate\Cache\RateLimiting\Limit; 6use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 7use Illuminate\Http\Request; 8use Illuminate\Support\Facades\RateLimiter; 9use Illuminate\Support\Facades\Route; 10 11class RouteServiceProvider extends ServiceProvider 12{ 13 /** 14 * The path to the "home" route for your application. 15 * 16 * Typically, users are redirected here after authentication. 17 * 18 * @var string 19 */ 20 public const HOME = '/home'; 21 22 /** 23 * Define your route model bindings, pattern filters, and other route configuration. 24 * 25 * @return void 26 */ 27 public function boot() 28 { 29 $this->configureRateLimiting(); 30 31 $this->routes(function () { 32 Route::middleware('api') 33 ->prefix('api') 34 ->group(base_path('routes/api.php')); 35 36 Route::middleware('web') 37 ->group(base_path('routes/web.php')); 38 }); 39 } 40 41 /** 42 * Configure the rate limiters for the application. 43 * 44 * @return void 45 */ 46 protected function configureRateLimiting() 47 { 48 RateLimiter::for('api', function (Request $request) { 49 return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); 50 }); 51 } 52} 53
回答1件
あなたの回答
tips
プレビュー