如何将选定的选项设置为ObjectSelect

时间:2014-03-21 06:10:41

标签: doctrine-orm zend-framework2 zend-form-select

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

1 个答案:

答案 0 :(得分:1)

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