我正在使用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>
...
我希望得到这个(假设正在编辑的对象有省=布宜诺斯艾利斯):
...
<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 $名称
我理解它的相应FieldSet应该只有一个Select元素,并且当一个对象被绑定时,它应该将相应的选项设置为&#34;选择&#34;。我是对的吗?
答案 0 :(得分:1)
我的Select元素名称错了。我将它从“select”更改为“id”,现在它正确设置了值。