我需要在if语句中检查多个权限的条件。它使用的是来自laravel的spatie包。我使用下面的代码,但它似乎不起作用。它可以显示输出,但输出不正确。它不会过滤条件。
if (auth()->user()->can('View Consultant') || auth()->user()('View Administration')
|| auth()->user()('View Accountant') || auth()->user()('All departments'))
{
$itemregistrations = DB::table('itemregistrations')
->where('categoryid','=', '1',',','2',',','3')
->get();
return view('profil.index', compact('itemregistrations'));
}
代码是否正确?
条件是有权限(查看顾问、查看管理、查看会计、所有部门)的用户可以查看所有部门的顾问、管理、会计列表。
对于有权限的用户(仅限查看顾问),只能查看顾问列表。
发布于 2018-12-17 16:05:45
根据文档,
您可以检查用户是否具有以下权限数组中的任何一个:
$user->hasAnyPermission(['edit articles', 'publish articles', 'unpublish articles']);
因此,您可以执行以下操作来检查多个条件。
if (auth()->user()->hasAnyPermission(['View Consultant', 'View Administration', 'View Accountant', 'All departments'])
{
$itemregistrations = DB::table('itemregistrations')
->where('categoryid','=', '1',',','2',',','3')
->get();
return view('profil.index', compact('itemregistrations'));
}
发布于 2019-12-19 09:13:14
如果您需要检查模型是否拥有所有权限,则应该使用方法hasAllPermissions()
。例如:
if (\Auth::user()->hasAllPermissions('View Consultant', 'View Administration', 'View Accountant', 'All departments')) {
// do something
}
发布于 2021-04-26 13:29:12
可以有两种使用方式。单个控件如下所示。
@can('edit articles')
//
@endcan
多个控件如下。
@if(auth()->user()->can('edit articles') && auth()->user()->can('edit uploads'))
//
@endif
https://stackoverflow.com/questions/51886986
复制相似问题