laravel - Laravel @can 方法不适用于所有角色
问题描述
问题
具有“作者”角色的用户看不到@can ... endcan
块内的 HTML。
描述
开发 Laravel 包并根据角色限制导航栏。但是,当我尝试仅为具有“作者”角色的用户制作导航元素时,它不起作用。当我用另一个角色替换“作者”时,它可以工作。
也许我的方法太复杂了,欢迎提出其他方法的建议以及提示,我必须在那里寻找解决问题的方法。
我有一个包含三个表的“标准”设置。一个用于用户,一个用于角色,一个用于 role_user 关系(如此处所述)。模型中的关系已设置。你可以在这里找到整个项目。提前致谢。
代码
@can('author')
<li class="nav-item">
<a class="nav-link"
href="{{ route('pages.index') }}">{{ __('limplecms::navigation.pages.overview')}}</a>
</li>
@endcan
@canany(['admin', 'editor'])
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown"
aria-expanded="false">
{{ __('limplecms::navigation.pages')}}
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('pages.index') }}">
{{__('limplecms::navigation.pages.overview')}}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{ route('pages.create') }}">
{{__('limplecms::navigation.pages.create')}}
</a>
</div>
</li>
@endcanany
@can('admin')
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown"
aria-expanded="false">
{{ __('limplecms::navigation.user.management')}}
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('users.index') }}">
{{__('limplecms::navigation.users.overview')}}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{ route('users.create') }}">
{{__('limplecms::navigation.users.create')}}
</a>
</div>
</li>
@endcan
解决方案
推荐阅读
- node.js - 使用 Buffer.allocUnsafe() 和 Buffer.alloc() 是什么情况?
- php - 如何使用 Doctrine 组合 Symfony 4 中唯一的两列?
- firebase - 在 null 上调用了方法“add”
- js-xlsx - 在使用带有 XLSX.utils.json_to_sheet 的标头选项时,标头不会覆盖
- php - 如何避免插入重复记录
- vba - 在 VB 中简化多个类似的“私人潜艇”
- javascript - Chrome 任务管理器中的内存占用、Javascript 内存和实时内存有什么区别?
- java - 如何停止textview的褪色动画?
- python - Django 是 MVC 还是 MVT 框架?
- jquery - Ajax 调用后关闭引导模式