header 按角色链接 laravel-admin

header links by role laravel-admin

我在我的网站上使用 https://laravel-admin.org/docs/en/README

我在管理面板中有一个通用的header,它显示了所有可以编辑的部分,这里是代码:

<?php foreach(Admin::menuLinks() as $link) { ?>
<?php if (in_array($link['uri'], ['users', 'posts', 'comments'])) {?> 
    <a class="sidebar-toggle sidebar-toggle-link" role="button" href="<?= admin_url($link['uri']) ?>"><i class="fa <?= $link['icon'] ?>"></i>
        <?= admin_trans ($link['title']) ?>
    </a>
<?php } ?>
<?php } ?>

我不会把所有的 header 代码都扔掉,因为它是标准的,只有 link 的代码到部分,但如果需要我可以扔掉它。

所以,我有 3 个分区。每个部分都有自己的管理员,他们将拥有相应的角色。现在,所有具有角色的管理员都可以看到 header 中的所有 link,但我需要隐藏它们并确保管理员只能看到他拥有角色权限的 link。我怎样才能在 header 中进行这样的检查?根据用户的角色显示这些 link。

我没有在文档中找到任何类似的内容。

据说有如何获得用户角色,但我怎么能在这里使用它Admin::user()->roles;

试试这个

如果你想按角色link显示

@foreach(Admin::menuLinks() as $link)
    @if (Admin::user()->isRole('developer'))
        //if user role is developer
    @endif
@endforeach

如果你想显示 link 权限

@foreach(Admin::menuLinks() as $link)
    @if (Admin::user()->can('create-post'))
        //if user has permission to create post
    @endif
@endforeach

查看文档了解更多详情https://laravel-admin.org/docs/en/permission