CollectionType 嵌入另一个 CollectionType :自定义条目块表单主题

CollectionType embedded in another CollectionType : customize entry block form theme

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

假设我有一个代表网页的实体。我认为我可以在页面上有块,所以我在我的 "Page" 实体中有一个 "Block" 实体的集合。然后我认为一个 bloc 可以包含子块(显然还有其他属性)所以我在我的 "Block" 实体中有一个 "SubBlock" 实体的集合。

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

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

考虑我的实体:

我试过了:

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

假设您有以下字段:

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

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

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

{% block _web_page_blocks_entry_subBlocks_entry_widget %}