0

我正在使用 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”。我对吗?

4

1 回答 1

1

我把 Select 元素的名称弄错了。我将它从“select”更改为“id”,现在它正在正确设置值。

于 2014-03-21T17:33:43.873 回答