gpt4 book ai didi

php - 索纳塔管理员 : How to remove "Add New" button from dashboard only?

转载 作者:行者123 更新时间:2023-12-02 23:44:53 24 4
gpt4 key购买 nike

我正在使用 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 在显示链接时会在模板中验证路线是否存在。

所以,我需要路由存在并删除链接。这可以使用配置来完成还是我必须重写模板?

最佳答案

在您的管理类(class)中:

use 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

关于php - 索纳塔管理员 : How to remove "Add New" button from dashboard only?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32821747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com