В сущности в моем приложении Symfony есть ассоциация, основанная не на идентификаторах, а на серийных номерах. Ассоциация выглядит так:
/**
* @var Department
*
* @ORM\ManyToOne(targetEntity="Department")
* @ORM\JoinColumn(name="department_serial", referencedColumnName="serial")
*/
protected $department;
Когда я создаю форму для этого объекта, я добавляю поле «Отдел» следующим образом:
->add('department', null, array
(
'label' => 'Choose department',
'required' => true,
//some more...
))
Проблема в том, что при отображении формы я получаю неправильные значения элементов списка html. Элементы, кажется, получают автоматическую нумерацию, так как значения не являются фактическими идентификаторами отдела. Они также не соответствуют серийным номерам, что является моей целью. Это пример того, что я получаю:
<select id="someId" name="form[someName]">
<option value="0">Department A</option>
<option value="1">Department B</option>
<option value="2">Department C</option>
<option value="3">Department D</option>
<option value="4">Department E</option>
<option value="5">Department F</option>
</select>
Значения элементов списка выше должны были быть порядковым номером каждого отдела. Поскольку это не так, связь между сущностью и ее отделом кажется потерянной, и сохранение моей формы невозможно. (Необходимо выбрать отдел, а отделы с этими порядковыми номерами [0, 1, 2, 3, 4, 5] не существуют.)
Следовательно, мой вопрос: как я могу указать в своем типе формы, какое свойство связанного объекта должно использоваться в качестве значения в списке html? Я знаю, что есть параметр под названием «свойство» для изменения метки каждого элемента списка, но есть ли способ изменить его значение?
nullнаentity? - person cheesemacfly   schedule 31.07.2013Department? - person cheesemacfly   schedule 31.07.2013