Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 覆盖捆绑操作_Php_Symfony_Sonata Admin - Fatal编程技术网

Php 覆盖捆绑操作

Php 覆盖捆绑操作,php,symfony,sonata-admin,Php,Symfony,Sonata Admin,我有一个带有symfony 2的项目,我在后台使用SonataAdminBundle。如何覆盖仪表板操作()以扩展它们以获得更多功能?可以在中找到此sonata管理员的路由配置 // vendor/bundles/Sonata/AdminBundle/Resources/config/routing/sonata_admin.xml <route id="sonata_admin_dashboard" pattern="/dashboard"> <def

我有一个带有
symfony 2
的项目,我在后台使用
SonataAdminBundle
。如何覆盖仪表板操作()以扩展它们以获得更多功能?

可以在中找到此sonata管理员的路由配置

// vendor/bundles/Sonata/AdminBundle/Resources/config/routing/sonata_admin.xml
    <route id="sonata_admin_dashboard" pattern="/dashboard">
        <default key="_controller">SonataAdminBundle:Core:dashboard</default>
    </route>
  • 打开位于/My/AdminBundle/Resources/config/routing.yml的包路由配置文件(您可能有不同的配置格式,如xml)

  • sonata_管理_仪表板: 模式:/dashboard 默认值:{u controller:MyAdminBundle:Core:dashboard}
  • 打开应用程序路由配置文件,并在sonata配置之后添加以下内容,以便它将覆盖它
  • 管理员: 资源:'@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' 前缀:/admin _索纳塔行政: 资源:。 类型:索纳塔行政酒店 前缀:/admin MyAdminBundle: 资源:“@MyAdminBundle/Resources/config/routing.yml” 前缀:/admin 免责声明只是想让你知道我没有在项目中使用过这个。我只是在本地检查一下,它就起作用了。这可能不是最好的解决方案


    希望这能有所帮助

    这是一个相当奇怪的解决方案,因为第一个匹配的路由是在Symfony中执行的。我还没有试过你的例子。谢谢你的好办法!如果我们通过sonata admin设置仪表板路由,这可能会起作用。如何通过自定义方法
    dashboardAction
    将参数传递给视图?
    namespace My\AdminBundle\Controller;
    
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
    use Symfony\Component\HttpFoundation\Response;
    use Sonata\AdminBundle\Controller\CoreController as BaseCoreContBroller;
    
    class CoreController extends BaseCoreContBroller
    {
    
        public function dashboardAction()
        {
            // your custom code
    
            // call parent method
            parent::dashboardAction();
        }
    }
    
    sonata_admin_dashboard: pattern: /dashboard defaults: { _controller: MyAdminBundle:Core:dashboard } admin: resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' prefix: /admin _sonata_admin: resource: . type: sonata_admin prefix: /admin MyAdminBundle: resource: "@MyAdminBundle/Resources/config/routing.yml" prefix: /admin