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 要素のみが必要であり、オブジェクトがバインドされている場合は、適切なオプションを「選択済み」として設定する必要があることを理解しています。私は正しいですか?

4

1 に答える 1