我有一个项目,我正在symfony 2
使用SonataAdminBundle
我的后端。我如何覆盖 adashboardAction()
以扩展它们以获得更多功能?
问问题
3085 次
1 回答
8
这个奏鸣曲管理员的路由配置可以在
// 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”的包,其中包含应该扩展仪表板操作的控制器。然后尝试以下操作:
在 /My/AdminBundle/Controller/CoreController.php 中创建一个控制器
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(); } }
打开位于 /My/AdminBundle/Resources/config/routing.yml 的捆绑路由配置文件(您可能有不同的配置格式,例如 xml)
奏鸣曲管理员仪表板: 模式:/仪表板 默认值:{ _controller: MyAdminBundle:Core:dashboard }
- 打开应用路由配置文件,在奏鸣曲配置后添加如下内容,使其覆盖
行政: 资源:'@SonataAdminBundle/Resources/config/routing/sonata_admin.xml' 前缀:/admin _奏鸣曲_管理员: 资源:。 类型:奏鸣曲管理员 前缀:/admin 我的管理包: 资源:“@MyAdminBundle/Resources/config/routing.yml” 前缀:/admin
免责声明只是为了让您知道我没有在项目中使用它。我只是在本地检查它并且它有效。这可能不是最好的解决方案!
希望这可以帮助
于 2012-01-04T22:34:40.903 回答