rapidwebltd/laravel-dynamic-menu
Laravel Dynamic Menu lets you build database-driven navigation menus in Laravel without hardcoding links. Define nested menu items, order them, render them in Blade, and automatically highlight the active page for cleaner, more maintainable navigation.
Adopt when:
Look elsewhere when:
To executives: This is a small, focused dependency that handles navigation menus — the hierarchical lists of links and section headings that editors manage in an admin panel. Buying it instead of building it avoids roughly the kind of work that is invisible to customers but consumes engineering time: the data model for nested items, linking menu entries to different kinds of content, and drag-and-drop ordering. The v1.1.0 release fixes a fresh-install data-persistence bug for section headings, makes sibling ordering deterministic so reordering is a single-record operation, and corrects migration rollbacks — all reliability fixes rather than scope changes. It supports a very broad range of Laravel and PHP versions, which lowers adoption friction across our applications. The one flag for the business is that it deliberately retains support for PHP 7.0, a runtime that is no longer security-supported; that is a plus only if we still operate such systems, and a caution about the package's modernization pace if we do not. Cost of adoption is low and reversible; the risk is concentrated in verifying database behavior beyond the SQLite test matrix.
To engineering: Thin, single-purpose dependency for DB-backed navigation with polymorphic item targets and first-class heading rows. v1.1.0 is a maintenance release: (1) fixes persistence of headings without a polymorphic target on fresh installs — check this against any seeder or install script that creates heading-only menus; (2) introduces deterministic sibling display ordering while still honoring explicitly set decimal positions, so reorder operations can update one row instead of renumbering siblings — confirm the collision/duplicate-position semantics before building a drag-and-drop UI on it; (3) corrects both migration rollbacks to drop the actually prefixed tables, so rollback-and-remigrate is now safe in prefixed environments; (4) widens the supported matrix to Laravel 5.5–13 while holding PHP 7.0, with added passing tests for the PHP 7.0/Laravel 5.5 and PHP 8.5/Laravel 13 combinations on SQLite. No breaking changes are indicated. Required due diligence before merge: run the migration up/down cycle and an ordering/reordering exercise against our actual database engine, review the polymorphic target resolution for N+1 queries when rendering a full tree, and decide on a caching layer for menu reads on any high-traffic surface. Note the compatibility floor as a constraint in our dependency policy review rather than an endorsement.
How can I help you explore Laravel packages today?