Symfony – Update sur many to many
janvier 6, 2017 7:27 Laissez vos commentairesBonjour à 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 :Symfony
Cet article a été écrit par admin