我正在使用Symfony 2.7和Sonata Admin Bundle来管理一些产品和产品图像.我使用了Sonata Admin Cookbook配方:
https://sonata-project.org/bundles/admin/master/doc/cookbook/recipe_file_uploads.html用于图像.
由于图片必须具有与之关联的产品ID,因此我想禁用Sonata管理信息中心和顶部工具栏中的“添加新图片”链接,以便所有上传的图片都包含相关产品.实际上,唯一允许添加图像的地方是产品添加/编辑页面.
根据这里找到的一些答案,我试图删除这样的路线:Sonata Admin Dashboard: configure actions per entity
protected function configureRoutes(RouteCollection $collection) { $container = $this->getConfigurationPool()->getContainer(); if ($container->get('request')->get('_route') == 'sonata_admin_dashboard') { $collection->remove('create'); } }
但是这个解决方案并不好,因为,如果在我访问管理仪表板时初始化缓存,则路径会在任何地方被删除,但如果缓存在不同的页面上初始化,则路由将出现在所有页面上,包括仪表板,因为如果在显示链接时路径存在,Sonata Admin会在模板中验证.
在您的管理类中:
原文链接:https://www.f2er.com/php/135812.htmluse Sonata\AdminBundle\Route\RouteCollection; protected function configureRoutes(RouteCollection $collection) { $collection->remove('create'); }
检查:https://sonata-project.org/bundles/admin/master/doc/reference/routing.html#removing-a-single-route