是否有更好的方法设置门而不用在每个方法中都定义?

时间:2019-08-29 13:33:40

标签: laravel acl

我正在使用Spatie的权限角色包。 我知道有两种防止用户访问控制器方法的方法。

1。 __construct

public function __construct()
{
    $this->middleware('permission:show products');
    $this->middleware('permission:create products', ['only' => ['create','store']]);
    $this->middleware('permission:edit products', ['only' => ['edit','update']]);
    $this->middleware('permission:destroy products', ['only' => ['destroy']]);
}

2。每种方法

 public function edit()
    {
        //
        if (Gate::denies('edit products')) {
            //get out
        }
        //do something
    }

    public function show()
    {
        //
        if (Gate::denies('show products')) {
            //get out
        }
        //do something
    }

有没有一种更好的方法,而不必在每个方法上都定义?

1 个答案:

答案 0 :(得分:0)

听起来像Middleware Groups。这样就可以对路由集合进行分组,并将中间件应用于该组中的所有路由。