之前与之后的中间件

之前中间件的示例如下:

<?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) 将导致在执行控制器代码之后执行的操作。