CollectionType嵌入在另一个CollectionType中:自定义条目块形式主题

时间:2016-03-23 18:19:59

标签: symfony-forms symfony

我尝试创建一个包含两级嵌入表单的页面。

我们说我有一个代表网页的实体。我认为我可以在页面上有集团,所以我有一个" Block"在我的" Page"实体。然后我认为一个集团可以包含subblocs(显然还有其他属性)所以我有一个" SubBlock"我" Block"中的实体实体。

当我使用Symfony生成的原型时,没有问题。但实际上,我想自定义原型属性。为了自定义第一级(块集合),我阅读了文档(symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-a-collection-prototype),一切都很好。覆盖块的名称为: _web_page_blocks_entry_widget

真正的问题是第二级(包含子块的块)。我想覆盖树枝原型,但我找不到好用的名字。我尝试了很多名字但没什么用。

考虑我的实体:

  • 网页
  • WebPageBlock
  • WebPageSubBlock

我试过了:

  • _web_page_blocks_subBlocks_entry_widget
  • _web_page_subBlocks_entry_widget
  • _web_page_sub_block_subBlocks_entry_widget
  • ...

但似乎没有任何效果。在这种情况下,是否有人知道应用的确切规则来覆盖默认的原型生成块?

1 个答案:

答案 0 :(得分:1)

假设您有以下字段:

// WebPageType
$builder->add('blocks', CollectionType::class);

// BlockType
$builder->add('subBlocks', CollectionType::class);

要覆盖subBlocks条目主题块,您应该使用:

{% block _web_page_blocks_entry_subBlocks_entry_widget %}