Symfony – Update sur many to many

janvier 6, 2017 7:27 Publié par Laissez vos commentaires

Bonjour à tous,

Voici un petit tutoriel pour insérer, supprimer et mettre à jour une entité à partir de son côté inversé.

Prenons 2 entité :
Contact
List ( propriétaire)
association de type many to many

Entité list (propriétaire)

class list

/**
* @ORM\ManyToMany(targetEntity="contact", inversedBy="list")
*
*/
private $contact;

/**
* Add contact
*
* @param \TutodidacteBundle\Entity\contact $contact
* @return list
*/
public function addContact(\TutodidacteBundle\Entity\contact $contact)

$this->contact[] = $contact;

return $this;

/**
* Remove contact
*
* @param \TutodidacteBundle\Entity\contact $contact
*/
public function removeContact(\TutodidacteBundle\Entity\contact $contact)

$this->contact->removeElement($contact);


Entité contact :

class contact

/**
* @ORM\ManyToMany(targetEntity="list", mappedBy="contact")
* @ORM\JoinColumn(name="tlist", referencedColumnName="id", nullable=true)
*/
private $list;

/**
*
* @param \TutodidacteBundle\Entity\list $tlist
* @return contact
*/
public function addList(\TutodidacteBundle\Entity\tlist $tlist)

$list->addContact($this);
$this->list[] = $list;

return $this;

/**
*
* @param \TutodidacteBundle\Entity\tlist $tlist
*/
public function removeList(\TutodidacteBundle\Entity\list $list)

$list->removeContact($this);
$this->list->removeElement($list);

/**
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getLlist()

return $this->llist;

Et enfin notre formulaire (ne pas oublier de passer by_reference à false pour l’update, afin que les setters soient correctement appelés)


->add('list', null, array('expanded' => true, 'multiple' => true, 'required' => false, 'label' => false, 'by_reference' => false))

Et voilà, il est ainsi possible de mettre à jour l’entité liste à partir de l’entité contact
A+

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire