如果我有4个表'roles','permissions','users','role_permission'每个用户都有角色,每个角色都有许多权限存储在role_permission表中的role_id和permission_id。 该主题是在每个刀片上加载的权限表,用于检查经过身份验证的用户是否有权访问该刀片,如何提高性能并解决“在每个刀片上从数据库加载所有权限”的问题。
如何提高性能而不加载所有权限
您可以为每个权限定义门,然后在刀片中使用 Laravel 的 @can 指令。 在
AuthServiceProvider
启动功能中:
Gate::define('edit-posts', function ($user) {
return $user->hasPermission('edit-posts');
});
在任何刀片中:
@can('edit-posts')
//
@endcan