Persistance: Many To Many avec attributs
Bonjour,
J'ai modélisé une relation many to many avec attributs de cette manière:
L'entité: DossierTransport
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
/**
* @ORM\Entity
* @ORM\Table(name="dossiertransport")
*/
class DossierTransport
{
.........
/**
*
* @ORM\OneToMany(targetEntity="DossierTransportProduit", mappedBy="dossiertransport", cascade={"persist"})
* @Assert\NotBlank(message = "items ne doit pas etre vide")
*/
protected $items;
...........
} |
L'entité: DossierTransportProduit
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
/**
* @ORM\Entity
* @ORM\Table(name="dossiertransportproduit")
*/
class DossierTransportProduit
{
....
/**
*
* @ORM\ManyToOne(targetEntity="DossierTransport", inversedBy="items")
*
*/
protected $dossiertransport;
/**
* @ORM\ManyToOne(targetEntity="Produit")
* @ORM\JoinColumn(nullable=false)
*/
private $produit;
...
} |
L'entite Produit
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
/**
* @ORM\Entity
* @ORM\Table(name="produit")
*/
class Produit
{
/**
* @var integer
*
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
*
* @ORM\Column(type="string")
* @Assert\NotBlank()
* @Assert\MinLength(5)
*/
protected $reference;
..} |
et dans le contrôleur j'ai:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
$form = $this->container->get('form.factory')->create(new DossierTransportFormType(), $dossiertransport);
$request = $this->container->get('request');
if ($request->getMethod() == 'POST')
{
$form->bindRequest($request);
//$form2->bindRequest($request);
if ($form->isValid())
{
$em->persist($dossiertransport);
$em->flush();
} |
Après validation les données s’enregistre dans les trois tables sauf que dans la table de liaison "dossiertransportproduit" l'id "dossiertransport_id"(clé étrangère: id dossiertansport) j'ai la valeur NULL.
Je me demande est ce dois-je ajouter quelque chose dans le contrôleur pour remédier à ça?
Merci