Hola usuario de nuestro sitio web, hemos encontrado la solución a lo que andabas buscando, desplázate y la hallarás un poco más abajo.
Solución:
En tu caso no puedes pasar $id
en el middleware.
En general, puede pasar parámetros al middleware mediante el uso de :
símbolo como este:
Route::get('user/id', ['middleware' => 'auth:owner', function ($id)
// Your logic here...
]);
Y obtenga el parámetro pasado en un método de middleware como este:
check() && auth()->user()->hasRole($role))
return $next($request);
return redirect('login');
Tenga en cuenta que el
handle()
método, que por lo general sólo toma un$request
y un$next closure
tiene unthird parameter
que es nuestro parámetro de middleware.Si pasaste varios parámetros como
auth:owner,subscription
a su llamada de middleware en la definición de ruta, solo agregue más parámetros a su método de manejo que se verá así:handle($request, Closure $next, $role,$subscription)
¡Espero que esto ayude!
Puede utilizar uno de los siguientes métodos para acceder al parámetro de ruta en un middleware:
primer método
$request->route()->parameters();
Este método devolverá un array de todos los parámetros.
segundo método
$request->route('parameter_name');
Aquí parameter_name
se refiere a lo que llamó el parámetro en la ruta.
Finalizando este artículo puedes encontrar las notas de otros sys admins, tú igualmente tienes el poder dejar el tuyo si lo crees conveniente.