Third Layer Navigation.
Im tryint to setup a third layer of navigation using the navigation builder
on the panel i defnied:
Modul is just an Model with function:
on the panel i defnied:
->navigation(function (NavigationBuilder $builder): NavigationBuilder {
$builder->groups(
array_merge(
[NavigationGroup::make('Dashboard')->items([NavigationItem::make('Dashboard')->url('/boot/dashboard.asp')->icon('heroicon-o-home')])],
Modul::query()
->where('hidden', 0)
->orderBy('OrderId')
->get()
->map(fn (Modul $modul) => $modul->getNavigationGroup())
->toArray()
));
return $builder;
}); ->navigation(function (NavigationBuilder $builder): NavigationBuilder {
$builder->groups(
array_merge(
[NavigationGroup::make('Dashboard')->items([NavigationItem::make('Dashboard')->url('/boot/dashboard.asp')->icon('heroicon-o-home')])],
Modul::query()
->where('hidden', 0)
->orderBy('OrderId')
->get()
->map(fn (Modul $modul) => $modul->getNavigationGroup())
->toArray()
));
return $builder;
});Modul is just an Model with function:
use Filament\Navigation\NavigationGroup as FilamentNavigationGroup;
public function getNavigationGroup(): NavigationGroup
{
$navigationItems = $this->menuItems()->where('unlocked', '=', 1)->whereNull("parent")->get()->map(fn (NavigationItem $navigationItem) => $navigationItem->registerAsNavigationItem())->toArray();
return FilamentNavigationGroup::make($this->LabelDE)
->icon(preg_match('/class\s*=\s*["\']([^"\']+)["\']/', $this->icon, $matches) ? $matches[1] : '')
->items($navigationItems)
->collapsed(true);
}use Filament\Navigation\NavigationGroup as FilamentNavigationGroup;
public function getNavigationGroup(): NavigationGroup
{
$navigationItems = $this->menuItems()->where('unlocked', '=', 1)->whereNull("parent")->get()->map(fn (NavigationItem $navigationItem) => $navigationItem->registerAsNavigationItem())->toArray();
return FilamentNavigationGroup::make($this->LabelDE)
->icon(preg_match('/class\s*=\s*["\']([^"\']+)["\']/', $this->icon, $matches) ? $matches[1] : '')
->items($navigationItems)
->collapsed(true);
}Solution
Solution: `
$navItem->childItems([...$children])$navItem->childItems([...$children])