Skip to content

Меню

Меню системы генерируется отдельной командой, которая собирает все сервисы с тегом admin и добавляет записи в базу данных.

Команда для генерации меню

bash
php bin/console menu:generate

Важно!

Принцип работы заключается в получении всех сервисов по тегу admin и создании записи в БД в случае, если записи с идентификатором админки не существует. Команду нужно запускать каждый раз при добавлении новой админки.


Типы меню

Описаны в MenuTypeEnum

  • text - используется для пунктов меню, которые никуда не ведут, например корневые разделы
  • link - используется для пунктов меню, которые ведут на кастомный url. Соответственно, для всех пунктов меню с таким типом обязательно заполнение поля url
  • main - используется для пунктов меню, которые ведут на list/tree action для конкретной админки
  • alias - используется для пунктов меню, которые дублируют информацию с типом main, и дополнительно имеют связь original

Кастомизация

Сейчас по умолчанию для всех админок регистрируемых в конфигах через AdminServiceConfigurator::register указывается следующий тег:

php
->tag('admin', [
    'originalName' => $class,
    'parentCode' => null,
    'isEditable' => true,
    'type' => MenuTypeEnum::MAIN->value,
    'menuAction' => 'list',
])
  • originalName - название, которое будет будет указано для пункта меню по умолчанию
  • parentCode - символьный код меню-родителя
  • isEditable - флаг для ограничения редактирования пункта меню
  • type - один из указанных выше типов меню
  • menuAction - стандартный экшн для меню, по умолчанию list, возможен вариант tree