2012-04-24 50 views
5

我們如何爲一個管理類 像我創建3 ADMIN類userAdmin,productAdmin,ticketAdmin 現在我要重寫ticketAdmin編輯操作和編輯模板,並添加一些額外的代碼重寫奏鳴曲包佈局那裏。symfony的2 sonataAdminBundle覆蓋模板

回答

7

如果你不希望創建一個額外的控制器,你可以使用這個方法在文檔中提到:

Admin's documentation - Reference - Templates (master) - 20.6. Configuring templates

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]] 

而且把你的模板資源/視圖/ PostAdmin/edit.html.twig。只需複製SonataAdmin軟件包中的原始模板並開始覆蓋即可。

博客編輯於:Override list view twig template in SonataAdminBundle – webDEVILopers Blog

14

您可以使用:

控制器:

custom action in 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; 
    } 
}