2017-06-26 65 views
1

我在索納塔(準確地說是兩個一對多關係),品牌和零售商有許多多對多的關係。 在品牌管理編輯頁面中,我想將所有零售商顯示爲列表(因此只是一個只讀版本),而不是正常編輯(此刻,在此品牌編輯頁面上,我可以管理這個品牌和零售商 - 添加一個新的,刪除一個現有的)。索納塔管理員:在編輯頁面列出一對多

我試圖探索兩條路線至今:

  1. 編輯頁面加載自定義枝杈
  2. 使用自定義字段類型此字段僅

我的問題是,既選項,我沒有設法得到解決方案 所以這裏是我所做的:

1 - 加載自定義編輯樹枝:

services: 
    xx_brand.admin.brand_brand: 
    calls: 
     - [ setTemplate, [edit, xxBrandBundle:Admin:base_edit.html.twig]] 

在這種情況下,base_edit是奏鳴曲base_edit的精確副本,但加載我的自定義base_edit_form

{% use 'xxBrandBundle:Admin:base_edit_form.html.twig' with form as parentForm %} 

在這裏,我可以排除retailers的默認渲染,但不能找到一種方法,然後渲染它,因爲我想,因爲我不知道怎麼retailers實體在這裏進行管理:

{% if admin.formfielddescriptions[field_name] is defined and field_name != 'retailers' %} 
    {{ form_row(form[field_name])}} 
{% else %} 
    <ul> 
    <li>retailer1</li> 
    <li>retailer2</li> 
    </ul> 
{% endif %} 

2 - 自定義字段類型的方法,我試圖按照documentation

  • 創建Bundle/Form/Type/ListType.php
  • 創建/BrandBundle/Resources/views/form/list.html.twig
  • 使用ListTypeconfigureFormFields

    use XX\BrandBundle\Form\Type\ListType; ... ->add('retailers', 'ListType');

但是我後來得到一個錯誤XX\BrandBundle\Form\Type\ListType

所以基本上,因爲我不能得到它的工作,這兩個選項中的任何一個很好解決我的問題? 如果是這樣,任何人都可以請建議我在那裏失蹤? 任何幫助將是非常讚賞:)

回答