我有这条路
Route::resource('companies','CompaniesController')->only( 'edit','create')->middleware('can:companies');
并将其分配给管理员拥有此权限的授权公司,如下所示:
user->roles->permissions->companies
而我仍然不能进入公司创建页面
您的中间件应映射到策略中的方法。所以假设您已经有一个带有create方法的CompanyPolicy,您的中间件应如下所示:
->middleware('can:create,companies');
你可以在Gate
中定义一个AuthServiceProvider
Gate::define('compagnie', function(User $user) {
// write the condition which determine if the user is allow to perfrorm this action
return $user->roles->permissions->companies;
});