In meinem Admin zu bekommen habe ich ein OneToMany wie es definiert:Sonata Admin - Unable sonata_type_collection Arbeit mit modaler
/**
* @ORM\OneToMany(targetEntity="Module", mappedBy="sequence", cascade={"persist", "remove"})
*/
private $modules;
Und die inversed Seite:
/**
* @ORM\ManyToOne(targetEntity="ModuleSequence", inversedBy="modules", cascade={"persist"}, fetch="LAZY")
* @ORM\JoinColumn(name="sequence_id", referencedColumnName="id")
*/
protected $sequence;
In meiner Admin-Klasse I definierte die 'Module' Feld als es:
->add('modules', 'sonata_type_collection',array(
'by_reference' => false
))
schließlich in der ModuleSequence Entity hier ist die addModule Methode:
/**
* Add modules
*
* @param \AppBundle\Entity\Module $module
* @return ModuleSequence
*/
public function addModule(\AppBundle\Entity\Module $module)
{
$module->setSequence($this);
$this->modules[] = $module;
return $this;
}
Ich habe die Schaltfläche "Hinzufügen", ich bekomme das modale, ich fülle es und validiere. Die Ajax-Anforderung wird an den Profiler gesendet, aber keine neue Zeile angezeigt.
Die 'sequence_id' ist nicht in der Datenbank und ich weiß nicht warum ... Irgendeine Idee bitte?
Wenn ich die 'inline' & 'Tabelle' Optionen verwende, ist die ID gut eingestellt.