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