【发布时间】:2015-05-29 12:58:31
【问题描述】:
上下文是
我有一个 collection 类型的 Symfony2 表单字段,其中集合项是 entity 类型。我使用 Symfony 2.7。
问题是
到目前为止它可以工作,但在这种情况下,我必须将模型数据转换器应用于这些集合项,如 in the Symfony Cookbook 所述。我用这个代码sn-p:
<?php
$builder
->add(
$builder
->create('items', 'collection', array(
'type' => 'entity',
'options' => array(
'class' => 'AppBundle:Item',
'property' => 'name',
'label' => 'Item',
),
'label' => 'Items',
'allow_add' => true,
'allow_delete' => true,
'delete_empty' => true,
'prototype' => true,
'required' => false,
))
// $options['em'] is the entity manager
->addModelTransformer(new ItemToNumberTransformer($options['em']))
)
;
不幸的是,这会将模型转换器应用于整个集合,而不是其中的一项。作为一种解决方法,我修改了转换器,使其也可以处理项目/id 数组,而不是仅使用单个项目/id,但这有点像是处理这个问题的错误地方。在我看来,这更像是一个语法问题。
问题是
有人知道如何将模型转换器应用于集合的每个项目吗?或者有人确认这是由于 Symfony 框架的限制而根本不可能吗?
【问题讨论】: