在Symfony Bundle视图中显示Sonata Admin Bundle


Display the Sonata Admin Bundle inside a view of a Symfony Bundle

我的问题很简单,但我认为答案不是。我会尽量说清楚的。

我有Sonata管理包,可以编辑或查看表格等。没关系。

我还有一个自定义捆绑包(我的主应用程序在那里)。这个捆绑包的接口是用trick调用javascript创建的。基本上,界面由三部分组成:
•带按钮的标题
•动态更改的"中心区域"取决于您单击的按钮
•底部有一个页脚,显示邮件、网站等标准信息。

我的捆绑包可以通过url/app_dev.php/homescreen访问
Sonata管理界面可通过url/app_dev.php/admin/dashboard 访问

现在,我想做的是,能够在我的捆绑包的中心区域内为Sonata提供的管理界面"充电"。但是,由于Sonata是自动生成的,所以您无法管理路由,我该如何使其工作?

最好只显示Sonata管理界面的一部分(例如,没有Sonata标题的表格的网格列表等)。

如果有人知道一些关于它的提示,我们将不胜感激!我希望我尽可能清楚。

如果需要,我可以提供代码/进一步的信息。

谢谢。

您可以编辑路由以在主屏幕url:上访问您的管理界面

admin:
    resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
    prefix: /homescreen
_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /homescreen
sonata_user:
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
    prefix: /homescreen

为了进行更多的调优,您可以使用generateUrl($name, $options)方法。有关详细信息,请参阅文档。

我终于找到了答案。

最好的方法是从ExtJS发出AJAX请求,调用Sonata的URL
小心Sonata小树枝的所有html内容,因为在应用程序的页面中显示时可能会导致问题(例如:当您的页面已经有标题时,您正在请求包含标题的html代码)。