Как установить выбранную опцию в ObjectSelect
Я работаю с ZF2 и Doctrine2 и создал форму для класса Place. Это место имеет свойство Провинция, которое я хотел бы отобразить как поле "Выбрать". Все отлично работает, когда я добавляю новые Места, но когда я пытаюсь отредактировать одно, я не знаю, как установить для атрибута "selected" правильный параметр Option в поле Select. На экране редактирования я получаю следующий код:
...
<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 $name
Я понимаю, что соответствующий FieldSet должен иметь только элемент Select, и когда объект привязан, он должен установить соответствующий параметр как "выбранный". Я прав?
1 ответ
Я неправильно получил название элемента Select. Я изменил его с "select" на "id", и теперь он правильно устанавливает значение.