В моем администраторе у меня есть OneToMany, определенный как он:
/**
* @ORM\OneToMany(targetEntity="Module", mappedBy="sequence", cascade={"persist", "remove"})
*/
private $modules;
И обратная сторона:
/**
* @ORM\ManyToOne(targetEntity="ModuleSequence", inversedBy="modules", cascade={"persist"}, fetch="LAZY")
* @ORM\JoinColumn(name="sequence_id", referencedColumnName="id")
*/
protected $sequence;
В моем классе администратора я определил поле «модули» следующим образом:
->add('modules', 'sonata_type_collection',array(
'by_reference' => false
))
Наконец, в сущности ModuleSequence есть метод addModule:
/**
* Add modules
*
* @param \AppBundle\Entity\Module $module
* @return ModuleSequence
*/
public function addModule(\AppBundle\Entity\Module $module)
{
$module->setSequence($this);
$this->modules[] = $module;
return $this;
}
У меня есть кнопка «добавить», я получаю модальное окно, заполняю его и проверяю. Запрос Ajax отправляется в профилировщик, но новая строка не появляется.
"Sequence_id" не установлен в базе данных, и я не знаю почему ... Есть идеи, пожалуйста?
Когда я использую параметры «inline» и «table», идентификатор установлен правильно.