在这种情况下,您无法进入中间件。$id
通常,您可以通过使用如下符号将参数传递给中间件::
Route::get('user/{id}', ['middleware' => 'auth:owner', function ($id) {
// Your logic here...
}]);
并将传递的参数放入中间件方法中,如下所示:
<?php
namespace App\Http\Middleware;
use Closure;
class Authentication
{
public function handle($request, Closure $next, $role)
{
if (auth()->check() && auth()->user()->hasRole($role)) {
return $next($request);
}
return redirect('login');
}
}
请注意,通常只采用 a 和 a 的方法有一个 ,这是我们的中间件参数。handle()
$request
$next closure
third parameter
如果您在路由定义中传递了多个参数,例如中间件调用,只需向 handle 方法添加更多参数,如下所示 -auth:owner,subscription
handle($request, Closure $next, $role,$subscription)