まずは、artisanコマンドでmiddlewareクラスの作成

作成されたmiddlewareクラス内にhandleというメソッドがあり、すべてのリクエストがこのメソッド内の処理でフィルタリングされて次のmiddlewareに引き渡されるようになっている

今回はカテゴリーが作られていなかった場合にトップページにリダイレクトされるように設定
作成したカスタムMiddlewareクラスを機能させるためにはKernel.phpにてregisterする必要がある

routemiddlewareの連想配列内にキーとvalueでセット
このキーを使用することでmiddlewareを呼び出すことができる
今回は2通りの方法でmiddlewareを適用させてい見る
まずはcontrollerのconstructor内にセット

onlyメソッドの引数にaction名を配列で指定することでmiddlewareの適用範囲を限定できる
次にrouteにセットする場合
下記の例では元々デフォルトで入っていたauthミドルウェアと今回作成したmiddlewareを併用

ちなみに一つだけの場合は配列にする必要なし↓

複数のrouteにmiddlewareをまとめて適用させたいときはgroupメソッドにコールバックをセットすることで実装できる

groupingしたほうがコードが整理されてスッキリする