Laravel 在下拉列表中显示特定数据

Laravel 在下拉列表中显示特定数据,laravel,voyager,Laravel,Voyager,如何从选择菜单中排除数据库行?例如:管理员可以创建用户并向其附加角色。可用的角色是dev、admin和普通用户。但是管理员用户只能看到管理员和普通用户角色。我知道我可以将它们添加到面包菜单中,但我想限制对开发人员角色以及添加其他角色时的视觉效果,以自动显示它们,而不是在面包菜单中逐个添加它们。最简单的解决方案是过滤从数据库中提取的角色集。因为我不熟悉您的数据库模式,所以这里有一个粗略的解决方案,您应该能够根据自己的需要进行调整 $rolesQuery = Role::newQuery(); i

如何从选择菜单中排除数据库行?例如:管理员可以创建用户并向其附加角色。可用的角色是dev、admin和普通用户。但是管理员用户只能看到管理员和普通用户角色。我知道我可以将它们添加到面包菜单中,但我想限制对开发人员角色以及添加其他角色时的视觉效果,以自动显示它们,而不是在面包菜单中逐个添加它们。

最简单的解决方案是过滤从数据库中提取的角色集。因为我不熟悉您的数据库模式,所以这里有一个粗略的解决方案,您应该能够根据自己的需要进行调整

$rolesQuery = Role::newQuery();

if (Auth::user()->is_admin) {
    $rolesQuery->where('role', '!=', 'dev');
}

$roles = $rolesQuery->get();

您可以缓存此结果供管理员将来使用。

谢谢!够了。