Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

raobilal4822's avatar

side bar customization in filament not working

i have asked a question from lora. the question and his response is below. but not working nothing is showing how to modify sidebar i have filament project. i have some items in side bar with out groups and some items in group. like for example i have dashboard and setting items in sidebar without groups and some groups like properties tha have item units and tenants. now i want to show dashboard on top of the list then properties group that have items units and tenants and the at the last bottom of the side bar i want to show setting item. i think filament have priority of items to show first. but i dont want that i want to show first an item then group then again want to show a item in the side bar how to get this.

Reply Follow 0 likes 1 reply LaryAI's avatar LaryAI AI 2 seconds ago Level 58

In Filament, the default sidebar order is determined by the registration order of your navigation items and groups within your panel’s getNavigation() method or similar setup. By default, items can also be sorted by priority, but for precise manual ordering (like: single item "Dashboard", then group "Properties", then single item "Settings" at the bottom), you can define the order directly in your PanelProvider.

Here’s how you can structure your sidebar explicitly:

use Filament\Navigation\NavigationGroup; use Filament\Navigation\NavigationItem;

public function getNavigation(): array { return [ // 1. Single "Dashboard" item at the top NavigationItem::make() ->label('Dashboard') ->icon('heroicon-o-home') ->url(route('filament.admin.dashboard')),

    // 2. "Properties" group with its items
    NavigationGroup::make()
        ->label('Properties')
        ->items([
            NavigationItem::make()
                ->label('Units')
                ->icon('heroicon-o-collection')
                ->url(route('filament.admin.units.index')),

            NavigationItem::make()
                ->label('Tenants')
                ->icon('heroicon-o-user-group')
                ->url(route('filament.admin.tenants.index')),
        ]),

    // 3. Single "Settings" item at the bottom
    NavigationItem::make()
        ->label('Settings')
        ->icon('heroicon-o-cog')
        ->url(route('filament.admin.settings.index')),
];

} Key points:

The order in the returned array determines the order in the sidebar. Navigation groups (NavigationGroup::make()) allow you to group items in the sidebar. Avoid using ->sort() or priority numbers if you want full manual control. If using resource navigation, you may need to disable default registration (static::$registerNavigation = false in your resource) and add custom items instead. Reference: Filament Docs – Custom Navigation

Summary: Manually return the items or groups in the order you want inside getNavigation(). This gives you complete control over the sidebar layout.

0 likes
1 reply
LaryAI's avatar
Level 58

Certainly! To customize the sidebar order in Filament as you described—having single items and groups appear in a specific, mixed order—you should override the navigation setup in your PanelProvider or use a custom navigation method if you’re on Filament v3+.

Step-by-Step Solution

1. Disable Default Resource Registration (If Necessary)

If you’re using Filament Resources and they appear automatically, disable their auto-registration in the sidebar by setting:

public static bool $registerNavigation = false;

in your Resource classes.

2. Customize Sidebar in PanelProvider

Open your PanelProvider (commonly app/Providers/Filament/AdminPanelProvider.php) and implement or override the getNavigation() method like this:

3. Check Navigation Placement

  • The array you return in getNavigation() defines the exact sidebar order, top-to-bottom.
  • Don’t use ->sort() or priorities if you want manual control; just set the order in the array.
  • If “Settings” should always be at the bottom, you can consider using Filament’s sticky sidebar features, but for most cases, just place the item last in the return array.

4. Double-Check Routes and URLs

Make sure route('filament.admin.*') matches your named routes. Adjust as necessary for your app.


Summary:
Place and group the items explicitly in the order you want within the getNavigation() method in your PanelProvider, and disable auto-registration for Resources you want to control manually.

If you follow the above pattern, your Filament admin sidebar will render exactly as you described:

  1. Dashboard (single item)
  2. Properties (group: Units, Tenants)
  3. Settings (single item at the bottom)

Let me know if you need help with adjusting the URLs or if any sidebar item isn’t showing!

Please or to participate in this conversation.