2017-06-26 46 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

所以基本上,因为我不能得到它的工作,这两个选项中的任何一个很好解决我的问题? 如果是这样,任何人都可以请建议我在那里失踪? 任何帮助将是非常赞赏:)

回答