如何提高 Laravel 中的角色和权限性能

问题描述 投票:0回答:1

如果我有4个表'roles','permissions','users','role_permission'每个用户都有角色,每个角色都有许多权限存储在role_permission表中的role_id和permission_id。 该主题是在每个刀片上加载的权限表,用于检查经过身份验证的用户是否有权访问该刀片,如何提高性能并解决“在每个刀片上从数据库加载所有权限”的问题。

debugger

如何提高性能而不加载所有权限

laravel eloquent laravel-blade
1个回答
0
投票

您可以为每个权限定义门,然后在刀片中使用 Laravel 的 @can 指令。 在

AuthServiceProvider
启动功能中:

Gate::define('edit-posts', function ($user) {
    return $user->hasPermission('edit-posts');
});

在任何刀片中:

@can('edit-posts')
    //
@endcan
© www.soinside.com 2019 - 2024. All rights reserved.