環境や条件

  • http://localhost:8000/test
  • /htdocs/laravelapp/app/Http/Controllers/Controller.php
  • /htdocs/laravelapp/resources/views/helloworld/index.blade.php
  • /htdocs/laravelapp/app/Http/Middleware/TestMiddleware.php <- これをメソッドチェーンで定義したい

  • 以下をweb.phpへ追加
Route::get('test','Controller@index')
    ->middleware(TestMiddleware::class);

上記だけだとエラーが発生

  • エラー内容
[ReflectionException]
  Class App\Http\Middleware\TestMiddleware does not exist

→ 「TestMiddlewareなんてクラスはありません」と言われています

  • 解決方法

→use文が抜けていました

use App\Http\Middleware\TestMiddleware; //これが抜けていた

Route::get('test','Controller@index')
    ->middleware(TestMiddleware::class);

結論(文法)

use 目的のミドルウェアまでのパス

Route::get('hoge1')
	->middleware(mdlwr1::class)
	->middleware(mdlwr2::class); //複数の場合連結して書く