2012-04-24 22 views
5

私は3管理クラスUSERADMIN、productAdminを作成しているようにどのように我々は、ticketAdmin を、単一の管理クラス のためのソナタバンドルレイアウトを無効にすることができ、今私はticketAdmin編集アクションと編集テンプレートをオーバーライドして、いくつかの余分なコードを追加したいですそこ。symfonyの2 sonataAdminBundleオーバーライドテンプレート

答えて

7

あなたが使用することができ、余分なコントローラを作成したくない場合この方法はドキュメントに記載されています:

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

Admin's documentation - Reference - Templates (master) - 20.6. Configuring templatesそしてリソース/ビュー/ 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; 
    } 
}