Рецепты

Отображение элементов меню по условию

  1. Через фасад Gate:
 namespaces
use Illuminate\Support\Facades\Gate;
use MoonShine\Laravel\Enums\Ability;
use MoonShine\MenuManager\MenuItem;
 
protected function menu(): array
{
return [
MenuItem::make('Роли', MoonShineUserRoleResource::class)
->canSee(fn() => Gate::check(Ability::VIEW_ANY, MoonshineUserRole::class)),
];
}
  1. Через ресурс:
use MoonShine\Laravel\Enums\Ability;
 
protected function menu(): array
{
return [
MenuItem::make('Роли', MoonShineUserRoleResource::class)
->canSee(fn(MenuItem $item) => $item->getFiller()->can(Ability::VIEW_ANY)),
];
}
  1. Без политик:
protected function menu(): array
{
$menu = [
MenuItem::make('Articles', ArticleResource::class),
];
 
if (request()->user()->isSuperUser()) {
$menu[] = MenuItem::make(
'Admins',
MoonShineUserResource::class
);
}
 
return $menu;
}