Zizaco Entrust Laravel对页面中的每个@权限进行mysql请求



我使用Laravel 5.2和Zicaco Entrust来管理权限和角色。

我有一个供用户使用的菜单,我使用laravel刀片系统来显示每个菜单部分的@权限菜单,因为我只显示用户有权查看的菜单部分。

@permission(['upload'])
<ul class="nav side-menu">
<li><a><i class="fa fa-home"></i>DB Feed <span class="fa fa-chevron-down"></span></a>
<ul class="nav child_menu">
@permission(['file-upload'])
<li><a href="{!!route('uploadform')!!}">file upload</a></li>
@endpermission
@permission(['***-upload'])
<li><a href="{!!route('***uploadform')!!}">*** upload</a></li>
@endpermission
@permission(['***-upload'])
<li><a href="{!!route('***uploadform')!!}">*** upload</a></li>
@endpermission
@permission(['***-upload'])
<li><a href="{!!route('***uploadform')!!}">*** upload</a></li>
@endpermission
</ul>
</li>
</ul>
@endpermission

它继续这样,因为我的菜单部分有大约50个不同的@权限。

现在,当我查看不同的mysql访问时,我可以看到它对DB:执行了50次相同的请求

select `roles`.*, `role_user`.`user_id` as `pivot_user_id`, `role_user`.`role_id` as `pivot_role_id` from `roles` inner join `role_user` on `roles`.`id` = `role_user`.`role_id` where `role_user`.`user_id` = '1'
select `permissions`.*, `permission_role`.`role_id` as `pivot_role_id`, `permission_role`.`permission_id` as `pivot_permission_id` from `permissions` inner join `permission_role` on `permissions`.`id` = `permission_role`.`permission_id` where `permission_role`.`role_id` = '1'

如何更改此行为,使其只执行一组请求?

谢谢。

好的,看来Laravel的Entrust插件不再开发了。我可以通过config文件夹中的cache.php文件找到解决方案,并添加以下行:

'ttl' => 30 //In minutes

最新更新