xxxxxxxxxx
public function handle(Request $request, Closure $next, $role)
{
// this one return array
// dd(func_get_args()); access to the $role parameter without declare $role or any variable
// func_get_args return our parameter and some useless data so we dont need them
// so that we use array_slice with offset 2, to slice that 2 junk data
// dd(array_slice(func_get_args(), 2));
if (auth()->user()->id != 1){
if ($role == "bill"){
$response = $next($request);
$content = $response->getContent();
return $response->setContent($content);
}
}
return response()->json('eres amir, no puedes entrar!!!');
}
xxxxxxxxxx
=> Middleware can also receive additional parameters. For example, if your application needs to verify that the authenticated user has a given "role" before performing a given action, you could create an EnsureUserHasRole middleware that receives a role name as an additional argument.
=> Additional middleware parameters will be passed to the middleware after the $next argument:
<?php
namespace App\Http\Middleware;
use Closure;
class EnsureUserHasRole
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string $role
* @return mixed
*/
public function handle($request, Closure $next, $role)
{
if (! $request->user()->hasRole($role)) {
// Redirect...
}
return $next($request);
}
}