我有一个可以拥有图像的实体。这是使用OneToMany
关系完成的。现在我希望用户选择一个图像。我当然可以使用这样的form field
:
$builder->add('image', 'entity', array(
'label' => 'Image',
'class' => 'VendorNameBundle:Image',
'property' => 'id',
) );
它按预期呈现所有ID的下拉列表。但我真正想要的只是隐藏的单个字段,并存储所选图像的id。
这样可行,但似乎不是一件好事......
在类型:
中$builder->add('_image', 'text', array(
'data' => $object->getImage()->getId(),
'property_path' => false
));
在控制器:
中$_image = $form["_image"]->getData();
if ($_image) {
$image = $this->getDoctrine()->getRepository('VendorNameBundle:Image')->find($_image);
if ($image) {
$object->setImage($image);
}
}
我的问题是:如何获取包含相关对象ID的隐藏文本字段并存储新选择的对象?