我使用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会在模板中进行验证。
所以,我需要路线存在,并删除链接。这可以使用配置完成,或者我必须重写模板?
谢谢你的时间回答我的问题。事实上,这是一种从我的仪表板中删除“添加新的”链接的方法,但它也会删除“列表”链接,我希望列表可以访问。此外,这不会删除顶部工具栏中的链接。 –