LoginSignup
1
0

More than 3 years have passed since last update.

【Laravel】ミドルウェア 復習

Last updated at Posted at 2020-07-16

この記事は以下の書籍を参考にして執筆しました。

HelloMiddlewareクラス

artisanのmake:middlewareでHelloMiddlewareクラスを作成し中身を見てみる

ミドルウェアの実行

handleメソッド

    public function handle($request, Closure $next)
    {
       //実行する処理
    }

出典:PHPフレームワークLaravel入門 第2版

引数 説明
$request Requestインスタンスが渡される
Closure $next クロージャ

$routeMiddlewareへ追記

実際の登録作業

app/Http/Kernel.php
'hello'=>\App\Http\Middleware\HelloMiddleware::class

出典:PHPフレームワークLaravel入門 第2版

we.phpの修正

web.php
Route::get('アドレス','コントローラ名@アクションメソッド')->middleware(ミドルウェアクラス名::class)

出典:PHPフレームワークLaravel入門 第2版

前処理と後処理

前処理

    public function handle($request, Closure $next)
    {
        //処理
        return $next($request);
    }

コントローラの前に実行する。
必要な処理をしてから$nextを実行してreturn

後処理

    public function handle($request, Closure $next)
    {
        $response=$next($request)
        //処理
        return $response;
    }

出典:PHPフレームワークLaravel入門 第2版

コントローラを実行した後に実行する
$nextでレスポンスを受け取ってから処理をする。

グローバルミドルウェア

$middlewareに追記して登録すると、web.phpにmiddlewareメソッドを書かなくても常にミドルウェアが実行される。

web.php
Route::get('アドレス','コントローラ名@アクションメソッド')->middleware(ミドルウェアクラス名::class)



Route::get('アドレス','コントローラ名@アクションメソッド')

グループミドルウェア

Kernel.php

  protected $middlewareGroups=[
    'グループ名'=>[
      ミドルウェアクラス::class,
    ],
  ];

出典:PHPフレームワークLaravel入門 第2版

web.phpのmiddlewareメソッドの引数にグループ名を指定。

web.php
Route::get('アドレス','コントローラ名@アクションメソッド')->middleware('グループ名')

出典:PHPフレームワークLaravel入門 第2版

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0