Я показываю таблицу html для фильтрованной коллекции объектов, и я хочу отображать флажок в каждой строке как часть формы, которая добавит выбранные объекты в сеанс var.
Я думаю, что каждый флажок должен иметь идентификатор сущности в качестве его значения, и я получу массив идентификаторов из данных поля формы (ok, поэтому значение должно быть косвенным ref для объекта, но для для простоты).
Я попытался создать форму Type с одним типом типа объекта, сопоставленным с свойством id объекта и вложенным в другую форму. Тип, у которого есть поле типа коллекции.
class FooEntitySelectByIdentityType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('foo_id', 'entity', array(
'required' => false,
'class' => 'MeMyBundle:FooEntity',
'property' => 'id',
'multiple' => true,
'expanded' => true
));
}
# ...
и
class FooEntitySelectionType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('identity', 'collection', array(
'type' => new FooEntitySelectByIdentityType,
'options' => array(
'required' => false,
'multiple' => true,
'expanded' => true,
'attr' => array('class' => 'foo')
),
));
}
# ...
а в контроллере форма создается с набором сущностей в качестве исходных данных
$form = $this
->createForm(
new \Me\MyBundle\Form\Type\FooEntitySelectionType,
$collection_of_foo
)
->createView()
;
Когда форма визуализируется, для поля идентификатора есть отдельная метка, но нет виджетов.
Возможно ли использовать этот объект только для полей типа сущности и типа? Если да, то что я могу сделать неправильно?