我正在使用 ZF2 和 Doctrine2,并为 Place 类创建了一个表单。这个地方有一个省属性,我想将其呈现为选择字段。添加新地点时一切正常,但是当我尝试编辑一个地点时,我不知道如何在“选择”字段中将“选定”属性设置为正确的选项。在编辑屏幕中,我得到以下代码:
...
<select name="lugar[localidad][provincia][select]">
<option value="">Seleccione provincia...</option>
<option value="1">Capital Federal</option>
<option value="2">Buenos Aires</option>
</select>
...
我想得到这个(假设正在编辑的对象有 Province=Buenos Aires):
...
<select name="lugar[localidad][provincia][select]">
<option value="">Seleccione provincia...</option>
<option value="1">Capital Federal</option>
<option value="2" selected>Buenos Aires</option>
</select>
...
这是包含 ObjectSelect 的字段集的代码:
class LocalidadFieldSet extends Fieldset /*implements InputFilterAwareInterface*/
{
public function __construct(ObjectManager $objectManager)
{
parent::__construct('localidad');
$this->setHydrator(new DoctrineObject($objectManager))->setObject(new Localidad());
$provinciaFieldSet = new ProvinciaFieldSet($objectManager);
$this->add($provinciaFieldSet);
$this->add(array(
'name' => 'select',
'type' => 'DoctrineModule\Form\Element\ObjectSelect',
'options' => array(
'object_manager' => $objectManager,
'target_class' => 'Application\Entity\Localidad',
'property' => 'nombre',
'label' => 'Localidad',
'empty_option' => 'Seleccione localidad...'
)
));
}
}
这是之前的 FieldSet 包含在他的父 FieldSet 中的地方:
$localidadFieldSet = new LocalidadFieldSet($objectManager);
$this->add($localidadFieldSet);
如果我的实体具有以下属性: $id $name
我理解它对应的 FieldSet 应该只有一个 Select 元素,并且当一个对象被绑定时,它应该将相应的选项设置为“selected”。我对吗?