Laravel サーバサイド

[入門者向け]5分でわかるLaravelのミドルウェアの仕組みと実装方法

どうも、シローです。

普段はサーバサイドやフロントサイドの開発をしております。

今回はLaravelのミドルウェアの仕組みと実装方法についてご紹介します。

この記事の対象者

  • Laravelを触り始めた人
  • ミドルウェアの役割を理解して、実装に取り入れたい人

ミドルウェアの役割

Laravelのミドルウェアは具体的には次のようなシーンで使われます。

  • ユーザーの認証情報が正しいかをチェックして間違っていれば401か403エラーを返す
  • /posts/{id}/xxxのようなパスにアクセスする時にpostsテーブルに{id} のレコードがあるかをチェックして存在しなければ404エラーを返す

要するにリクエストをコントローラに渡す前に何かしらの処理をさせることができます。

ミドルウェアの実装

ミドルウェアはArtisanコマンドで作成することができます。

次のコマンドを実行します。

これでapp/Http/Middleware/BoardMiddleware.phpが作成されます。
中身はboardsテーブルにidに該当するレコードがない場合は404エラーを返すようにしたいので、次のようにします。

このミドルウェアを利用するためにはapp/Http/Kernel.phpに登録する必要があります。

Kernel.phpの$middlewareAliasesを次のように編集します。

これでboard_checkという名前のミドルウェアが登録されました。

ルーティングにミドルウェアを適用する

middlewareメソッドを使って先ほど登録したミドルウェアを使用します。

動作確認

http://localhost/board/1みたいにidに対応するboardデータが作成されている場合は画面は正しく表示されますが。

存在しないid(例えば400)でアクセスすると画像のような404画面が表示されます。

おわり

以上、Laravelでミドルウェアの役割と実装方法についての内容でした。

リクエストをコントローラの前に共通する処理を入れたい場合にはミドルウェアを使うのが便利だと思います。

本記事が少しでも参考になれば幸いです。

-Laravel, サーバサイド

© 2024 Shiro's secret base