Я использую Symfony 2.7 с Sonata Admin Bundle для управления некоторыми продуктами и изображениями продуктов. Я использовал рецепт Sonata Admin Cookbook: https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_file_uploads.html для изображений.
Поскольку с изображением должен быть связан идентификатор продукта, я хочу отключить ссылку "Добавить новое" на панели администратора Sonata и на верхней панели инструментов, чтобы любое загруженное изображение имело связанный продукт. На самом деле единственное место, где изображения могут быть добавлены, находится на странице добавления/редактирования продукта.
Я пытался удалить маршрут следующим образом, в соответствии с некоторыми ответами, найденными здесь: Sonata Admin Dashboard: настройка действий для объекта
protected function configureRoutes(RouteCollection $collection)
{
$container = $this->getConfigurationPool()->getContainer();
if ($container->get('request')->get('_route') == 'sonata_admin_dashboard') {
$collection->remove('create');
}
}
Но это решение не годится, потому что, если при доступе к панели администратора администрация кеша инициализируется, маршрут удаляется везде, но если кеш инициализируется на другой странице, маршрут будет присутствовать на всех страницах. включая панель мониторинга, потому что администратор Sonata проверяет в шаблонах, существует ли маршрут при отображении ссылки.
Итак, мне нужен маршрут, чтобы существовать и удалить ссылку. Можно ли это сделать с помощью конфигурации или мне нужно переписать шаблоны?