A basic Menu system for Easyadmin.
Repository Branch | Version | Symfony Compatibility | PHP Compatibility | Status |
---|---|---|---|---|
2.x |
2.x |
5.4 , and 6.x |
8.0.2 or higher |
New features and bug fixes |
1.x |
1.x |
4.4 , and 5.x |
7.2.5 or higher |
No longer maintained |
Add our recipes endpoint
{
"extra": {
"symfony": {
"endpoint": [
"https://api.github.com/repos/agence-adeliom/symfony-recipes/contents/index.json?ref=flex/main",
...
"flex://defaults"
],
"allow-contrib": true
}
}
}
Install with composer
composer require agence-adeliom/easy-menu-bundle
Update config/packages/stof_doctrine_extensions.yaml
to add gedmo tree mapping configuration:
stof_doctrine_extensions:
orm:
default:
tree: true
doctrine:
orm:
entity_managers:
default:
mappings:
gedmo_tree:
type: attribute
prefix: Gedmo\Tree\Entity
dir: "%kernel.project_dir%/vendor/gedmo/doctrine-extensions/src/Tree/Entity"
alias: GedmoTree # (optional) it will default to the name set for the mapping
is_bundle: false
php bin/console doctrine:migration:diff
php bin/console doctrine:migration:migrate
php bin/console doctrine:schema:update --force
Go to your dashboard controller, example : src/Controller/Admin/DashboardController.php
<?php
namespace App\Controller\Admin;
...
use App\Entity\EasyMenu\Menu;
class DashboardController extends AbstractDashboardController
{
...
public function configureMenuItems(): iterable
{
...
yield MenuItem::linkToCrud('easy.menu.admin.menus', 'fa fa-file-alt', Menu::class);
...
# 1. Create as separate html twig file to render your template :
templates/bundles/EasyMenuBundle/front/menus/my_menu_code.html.twig
# 2. Execute this twig extension on your controller template
{{ easy_menu('my_menu_code') }}
# Optional. If you need to specify your own template file path
{{ easy_menu('my_menu_code', { 'template': 'menus/my_menu_code.html.twig' }) }}
<ul>
{% for item in menu.items %}
<li>{{ item.name }}</li>
{# recursive loop ... #}
{% endfor %}
</ul>