php – Sonata管理员:如何仅从仪表板中删除“添加新”按钮?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Sonata管理员:如何仅从仪表板中删除“添加新”按钮?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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会在模板中验证.

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

在您的管理类中:
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 – Sonata管理员:如何仅从仪表板中删除“添加新”按钮?全部内容,希望文章能够帮你解决php – Sonata管理员:如何仅从仪表板中删除“添加新”按钮?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。