いずみこんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「Laravelで認証チェックやログ記録などの処理を、複数のコントローラーに書かずに共通化したい」とお考えではありませんか?
Laravelのコントローラーに認証チェックやロギング処理を毎回書いていると、コードが重複しやすくなります。
ミドルウェアを使えば、リクエストとレスポンスの間に共通処理を差し込んで、コントローラーをシンプルに保つことが可能です。



サクッと解説していきます。
ということで、本記事ではLaravelでミドルウェアを実装する方法を解説します。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
【Laravel】ミドルウェアでリクエスト処理を共通化する方法
早速ですが、Laravelでミドルウェアを実装する方法を解説します。
ミドルウェアとは何か
ミドルウェアは、HTTPリクエストがコントローラーに届く前、またはレスポンスがブラウザに返る前に処理を差し込む仕組みです。
認証チェック、ログ記録、CORSの設定など、複数のルートで共通して必要になる処理を1箇所にまとめられます。



認証まわりの処理をコントローラーに毎回書くと、後で修正が大変になりますよね。
ミドルウェアを作成する
まずは、Artisanコマンドでミドルウェアの雛形を作成します。
以下のコマンドを実行すると、app/Http/Middlewareディレクトリにクラスが生成されます。
php artisan make:middleware EnsureUserIsAdmin生成されたクラスのhandleメソッドに、実際の処理を書きます。
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureUserIsAdmin
{
public function handle(Request $request, Closure $next): Response
{
if (! $request->user() || ! $request->user()->is_admin) {
abort(403, '権限がありません。');
}
return $next($request);
}
}管理者以外のアクセスを403エラーで拒否する処理を実装しました。



条件を満たさない場合はabortで処理を止め、満たす場合は$next($request)で後続の処理に進めます。
ミドルウェアを登録して適用する
作成したミドルウェアは、そのままではルートに適用できません。
bootstrap/app.phpでエイリアスを登録してから、ルートやコントローラーで指定します。
withMiddlewareメソッドの中でaliasメソッドを呼び出し、短い名前をミドルウェアクラスに紐づけます。
use App\Http\Middleware\EnsureUserIsAdmin;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'admin' => EnsureUserIsAdmin::class,
]);
})
->create();登録したエイリアス名を、middlewareメソッドに渡します。
Route::get('/admin/dashboard', [DashboardController::class, 'index'])
->middleware('admin');


adminというエイリアス名でルートに適用できるようになりました。
グローバルミドルウェアとして登録する方法
全リクエストに対して処理を実行したい場合は、グローバルミドルウェアとして登録します。
withMiddlewareメソッドのappendメソッドを使うと、ミドルウェアスタックの末尾に追加されます。
use App\Http\Middleware\LogRequestMiddleware;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withMiddleware(function (Middleware $middleware) {
$middleware->append(LogRequestMiddleware::class);
})
->create();ログ記録のように、特定のルートに限定せず常に実行したい処理は、グローバルミドルウェアとして登録するのが向いています。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
【厳選】フリーランスエンジニアにおすすめなエージェント3選


フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。
僕が実際に利用しているおすすめエージェントを紹介しますね。



エージェントは必ず複数登録してください。
担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…
僕は実際に5つのエージェントを使い回していますよ。
フリーランスを始めるなら「レバテックフリーランス


」
- 業界最大級の案件数。
- 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
- 案件参画中のフォローの充実。
※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。
レバテックフリーランス
![]()
![]()
とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!



僕もはじめてフリーランスの案件を貰ったのはレバテックフリーランス
![]()
![]()
保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。
手厚い保障を重視したいなら「Midworks


」
- 手厚い保障で正社員並みの安心感。
- 還元率60%超え&単価公開でクリアな契約。
- 給与保障制度(審査あり)。
Midworks
![]()
![]()
フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。



僕も何度か案件を紹介してもらいました。
自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。
週2〜3日の案件探しなら「ITプロパートナーズ


」
- IT案件に特化したフリーランスエージェント。
- 週2〜3日の案件が豊富。
- リモート案件が多く、直エンドなので単価も高い。
※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。
ITプロパートナーズ
![]()
![]()
週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。



週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。
とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!
よくある質問
ミドルウェアはどこに配置すればいいですか?
app/Http/Middlewareディレクトリに配置するのが標準です。
Artisanコマンドのmake:middlewareを実行すると、自動的に同ディレクトリへクラスが生成されます。
複数のミドルウェアを組み合わせて使えますか?
middlewareメソッドに配列でエイリアス名を渡すと、複数のミドルウェアを順番に適用できます。
Route::get('/admin/dashboard', [DashboardController::class, 'index'])
->middleware(['auth', 'admin']);ミドルウェアの実行順序はどう決まりますか?
グローバルミドルウェアは、bootstrap/app.phpに登録した順番で実行されます。
ルートミドルウェアは、middlewareメソッドに渡した配列の順番で実行されます。
まとめ
今回は、Laravelでミドルウェアを実装する方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Laravelの勉強なら「PHPフレームワーク Laravel入門 第2版



最後までお読みいただき、ありがとうございました!
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。









