ミドルウェアMiddlewareを追加する
まずミドルウェア Middleware を作る
コンソールでartisanコマンドを打つ
1 |
$ php artisan make:middleware Hogehoge |
app/Http/Middleware/の下に、Hogehoge.phpが作成されます。
Hogehoge.phpの中身を作ります。
handleの中に処理を書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php namespace App\Http\Middleware; use Closure; class Hogehoge { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { /* ここに処理を書きます。 */ return $next($request); } } |
return $next($request); これは必須なので、消さないこと。
カーネルKernelに追加します。
app/Http/Kernel.php の$routeMiddlewareに追加します。
1 2 3 4 5 |
protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, /* 省略 */ 'hogehoge' => \App\Http\Middleware\Hogehoge::class, ]; |
$routeMiddlewareの最後に作成したミドルウェアを追加します。
webルートで広範囲に適用する場合
1 2 3 4 5 |
Route::group(['middleware' => ['hogehoge']], function () { Route::get('','MainController@index'); } |
これで、ルートにアクセスしてMainController.phpを呼ぶ前に、ミドルウェアが処理を行います。
webルートで、コントローラに個別適用する場合
1 |
Route::get('','MainController@index')->middleware('hogehoge'); |
ルートの後ろに->middleware('hogehoge’);を追加します。
コントローラのコンストラクタに適用する場合
1 2 3 4 5 6 |
public function __construct() { $this->middleware('hogehoge'); } |
そのまま、コンストラクタからミドルウェアを呼ぶだけです。