symfony 2 sonataAdminBundle覆盖模板

Ani*_*pta 5 symfony sonata-admin

我们如何覆盖单个Admin类的奏鸣曲包布局,就像我已经创建了3个Admin类userAdmin,productAdmin,ticketAdmin现在我想覆盖ticketAdmin编辑操作并编辑模板并在那里添加一些额外的代码.

小智 14

您可以使用 :

控制器:

SonataAdminBundle中的自定义操作

模板:

// in your admin class
public function getTemplate($name)
{
    switch ($name) {
        case 'edit':
            return 'AcmeMyBundle::my-custom-edit.html.twig';
            break;
        default:
            return parent::getTemplate($name);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)


web*_*ers 7

如果您不想创建额外的控制器,可以使用文档中提到的此方法:

管理员文档 - 参考 - 模板(主) - 20.6.配置模板

services:
sonata.admin.post:
    class: Acme\DemoBundle\Admin\PostAdmin
    tags:
        - { name: sonata.admin, manager_type: orm, group: "Content", label: "Post" }
    arguments:
        - ~
        - Acme\DemoBundle\Entity\Post
        - ~
    calls:
        - [ setTemplate, [edit, AcmeDemoBundle:PostAdmin:edit.html.twig]]
Run Code Online (Sandbox Code Playgroud)

并将您的模板放在Resources/views/PostAdmin/edit.html.twig中.只需从SonataAdmin Bundle复制原始模板并开始覆盖.

博客在:在SonataAdminBundle覆盖列表视图模板枝- webDEVILopers博客