【Laravel】ミドルウェア1人勉強会_その1【PHP】
によると
- アプリケーションへ送信されたHTTPリクエストをフィルタリングするものである。
基本的にアプリの流れは以下の通り
ここにミドルウェアが加わることにより以下のようになる
- クライアント(ブラウザ)がリクエスト
- ミドルウェアの処理(Before)
- ルーティングからコントローラを呼び出し、
- ビューをレンダリングして、レスポンスを生成。
- ミドルウェアの処理(After)
- クライアントへレスポンスを返す。
今回はBeforeの処理について、簡単なプログラムを作る。
Beforeミドルウェアの例
artisanコマンド(php artisan make:middleware HogeMiddleware)を使い、ミドルウェアを作成する。
以下は、URLパラメータのnumberの値が0以下であった場合に、リダイレクト処理するものである。
もしif文に引っ掛からなかった場合、コントローラのアクションが実行される。
HogeMiddleware.php
<?php namespace App\Http\Middleware; use Closure; class HogeMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if($request->number<=0){ return redirect('other'); } return $next($request); } }
あとはミドルウェアを使う処理を設定するだけ
Web.phpで
Route::get('hoge','HogeController@index')->middleware(HogeMiddleware::class);
app/Http/Kernel.phpの$routeMiddlewareの配列に追加する。
'hoge'=>\App\Http\Middleware\HogeMiddleware::class,