2013-11-09 82 views
2

我正在使用Sonata Admin來管理我的應用程序中的CRUD任務。在一個稱爲多媒體的管理員中,該管理員與文件和網絡鏈接具有一對多關係,這兩者都嵌入在多媒體表單中。我有一個自定義模板,可以將這些字段水平渲染並標題。我的問題是,是否必須爲文件和Web鏈接指定兩個不同的模板,因爲使用單個文件失敗了,文件呈現了我想要的嵌入表單,但是weblink忽略了指令。Sonata Admin中的自定義模板

這裏的管理員密碼

class MultimediaAdmin extends Admin 
{ 
// Fields to be shown on create/edit forms 
protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->with('General') 
      ->add('name') 
      ->add('publish_date') 
      ->add('keywords') 
      ->add('copyright') 
     ->end() 
     ->with('Files') 
      ->add('files','sonata_type_collection', 
      array('label' => 'Multimedia Files', 
       'btn_add'  => 'Add File', 
       'by_reference' => 'false', 
       'type_options' => array('delete' => false) 
       ), array(
        'edit' => 'inline', 
        'template' => 'MyMultimediaBundle:Multimedia:horizontal.fields.html.twig' 
       ) 
      ) 
     ->end() 
     ->with('Tags') 
      ->add('tags') 
     ->end() 
     ->with('Weblinks') 
      ->add('weblinks','sonata_type_collection', 
      array('label' => 'External Videos', 
       'btn_add'  => 'Add Video', 
       'by_reference' => 'false', 
       'type_options' => array('delete' => false) 
       ), array(
        'edit' => 'inline', 
        'template' => 'MyMultimediaBundle:Multimedia:horizontal.fields.html.twig' 
       ) 
      ) 
     ->end() 
    ; 
} 
// Fields to be shown on lists 
protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('name') 
     ->add('publish_date') 
     ->add('keywords') 
     ->add('copyright') 
     ->add('_action','actions',array('actions'=>(array('edit'=>array(),'view'=>array(),'delete'=>array())))) 
    ; 
} 
// Fields to be shown on filter forms 
protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
{ 
    $datagridMapper 
     ->add('name') 
     ->add('publish_date') 
     ->add('keywords') 
     ->add('copyright') 
    ; 
} 
public function prePersist($multimedia) 
{ 
    $this->preUpdate($multimedia); 
} 

public function preUpdate($multimedia) 
{ 
    $multimedia->setFiles($multimedia->getFiles()); 
} 
public function getFormTheme() 
{ 
return array_merge(
    parent::getFormTheme(), 
    array('MyMultimediaBundle:Multimedia:horizontal.fields.html.twig') 
); 
} 

回答

0

我在關於塊命名模板想通了,很基本的錯誤。希望這可以幫助未來的人