Skip to main content

Menu Structure

SOLID automatically generates and manages the admin panel's menu structure based on your modules and resources. The menu system provides an intuitive way to navigate through your application's features.

Automatic Generation

  • Each module gets its own menu section
  • Resources within modules appear as sub-items
  • Menu items are automatically ordered alphabetically
  • Access control is integrated with permissions
├── Module 1
│ ├── Resource 1
│ ├── Resource 2
│ └── Resource 3
├── Module 2
│ ├── Resource 4
│ └── Resource 5
└── System
├── Users
├── Roles
└── Settings

You can customize the menu structure through configuration:

{
"menu": {
"items": [
{
"module": "sales",
"label": "Sales Management",
"icon": "shopping-cart",
"order": 1,
"items": [
{
"resource": "customers",
"label": "Customers",
"icon": "users",
"order": 1
},
{
"resource": "orders",
"label": "Orders",
"icon": "file-text",
"order": 2
}
]
}
]
}
}

Configuration Options

OptionDescription
labelDisplay name in the menu
iconMenu item icon
orderCustom ordering (lower numbers first)
visibleShow/hide menu item
rolesRole-based visibility

Features

Dynamic Updates

  • Menu updates automatically when modules/resources change
  • Real-time permission checks
  • Responsive to user role changes
  • Support for dynamic sub-menus

Access Control

  • Menu items respect user permissions
  • Role-based visibility
  • Resource-level access control
  • Custom permission rules

Customization

  • Custom icons
  • Custom ordering
  • Custom labels
  • Nested menu structures

Best Practices

Organization

  • Group related items together
  • Use clear, descriptive labels
  • Keep menu depth manageable
  • Consider user workflow

Permissions

  • Set appropriate access levels
  • Group similar permissions
  • Document permission requirements
  • Regular permission audits

User Experience

  • Use meaningful icons
  • Maintain consistent naming
  • Optimize menu depth
  • Consider mobile users

Maintenance

  • Regular menu audits
  • Update outdated labels
  • Remove unused items
  • Monitor access patterns