Ho un problema con SonataAdminBunle in combinazione con symfony 2.2. Ho un progetto un'entità e un'entità ProjectImage e specificata una relazione uno-a-molti tra questi due in questo modo:Sonata Admin Bundle Relazione uno-a-molti che non salva ID esterno
class Project
{
/**
* @ORM\OneToMany(targetEntity="ProjectImage", mappedBy="project", cascade={"all"}, orphanRemoval=true)
*/
private $images;
}
class ProjectImage
{
/**
* @ORM\ManyToOne(targetEntity="Project", inversedBy="images")
* @ORM\JoinColumn(name="project_id", referencedColumnName="id")
*/
private $project;
}
Ho configurato il ProjectAdmin e ProjectImageAdmin:
class ProjectAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title')
->add('website')
->add('description', 'textarea')
->add('year')
->add('tags')
->add('images', 'sonata_type_collection', array(
'by_reference' => false
), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'id',
))
;
}
}
class ProjectImageAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('file', 'file', array(
'required' => false
))
;
}
}
Il problema è che nella tabella project_image nel database non viene salvato project_id, mentre tutti gli altri dati sono e anche l'immagine viene salvata. Non ho trovato una risposta funzionante da nessun'altra parte.
Hai provato a rimuovere by_reference? –
Sì, l'ho provato. Purtroppo nessun risultato. –
Sono presenti i metodi setImages, addImage, removeImage e getImages nell'entità Progetto? –