Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel $this的功能->;中间件(';auth:guard';)和$this->;中间件(';guest:guard';)_Laravel_Laravel 5 - Fatal编程技术网

Laravel $this的功能->;中间件(';auth:guard';)和$this->;中间件(';guest:guard';)

Laravel $this的功能->;中间件(';auth:guard';)和$this->;中间件(';guest:guard';),laravel,laravel-5,Laravel,Laravel 5,Laravel文档说,我们可以通过:将参数传递给中间件 因此,如果我将警卫作为参数传递给guest或auth中间件,例如: $this->中间件('guest:admin') 或 $this->中间件('auth:admin') 这是什么意思 如这里的AdminController.php class AdminController extends Controller { use AuthenticatesUsers; protected $redirectTo

Laravel文档说,我们可以通过
将参数传递给中间件

因此,如果我将警卫作为参数传递给
guest
auth
中间件,例如:

$this->中间件('guest:admin')

$this->中间件('auth:admin')

这是什么意思

如这里的AdminController.php

    class AdminController extends Controller
{

    use AuthenticatesUsers;


    protected $redirectTo = '/admin/dashboard';

    public function __construct()
    {
        $this->middleware('auth:admin')->except(['show_login','login']);
        $this->middleware('guest:admin')->only(['show_login','login']);
    }
}

您可以在中间件句柄方法中获取该参数

public function handle($request, Closure $next, $role)
{
    if (! $request->user()->hasRole($role)) {
        // Redirect...
    }

    return $next($request);
}

有关详细信息,请阅读。

此参数指定用于验证用户身份的保护

有关自定义防护的更多信息:


auth
中间件在中定义,您可以分别在
\App\Http\middleware\Authenticate
\App\Http\middleware\RedirectIfAuthenticated
中更改重定向URL。我指的是未分配给用户表的角色。这里admin有自己的提供者和守卫。我只想知道
$this->middleware('auth:admin')
$this->middleware('guest:admin')
这里是什么工作?
guest
意味着你的用户没有经过身份验证,所以,
guest:admin
毫无意义。@SujeetAgrahari您在中间件句柄方法中获取该参数。@VaheShak我从
$this->middleware('guest:admin')
中删除了
admin
。现在,即使我已登录,我也可以访问
登录
路线。那怎么可能是胡说八道呢?