【发布时间】:2015-09-28 11:21:05
【问题描述】:
我正在使用 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 在显示链接时会在模板中验证路由是否存在。
所以,我需要存在路径并删除链接。这可以使用配置完成还是我必须重写模板?
【问题讨论】:
标签: php symfony configuration-files sonata-admin dashboard