之前與之後的中介軟體

之前中介軟體的示例如下:

<?php

namespace App\Http\Middleware;

use Closure;

class BeforeMiddleware
{
    public function handle($request, Closure $next)
    {
        // Perform action

        return $next($request);
    }
}

中介軟體看起來像這樣:

<?php

namespace App\Http\Middleware;

use Closure;

class AfterMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        // Perform action

        return $response;
    }
}

關鍵區別在於如何處理 $request 引數。如果在執行控制器程式碼之前執行的 $next($request) 之前執行操作,則首先呼叫 $next($request) 將導致在執行控制器程式碼之後執行的操作。