Tri des oneToMany

Lorsque vous voulez trier une relation OneToMany d’une entité, par exemple :

class Personne
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Animal", mappedBy="personne")
*/
protected $animaux;

...
}

Il suffit d’ajouter un @ORM/OrderBy({« attribute » = « ASC », « attribute2 » = « DESC »}), ce qui donnera pour notre exemple :

class Personne
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Animal", mappedBy="personne")
* @ORM\OrderBy({"nom_animal" = "ASC"})
*/
protected $animaux;

...
}

Pratique et indispensable !

DQL MEMBER OF

Lorsque vous avez une relation ManyToMany du style :

/**
 * @ORM\ManyToMany(targetEntity="Societe", inversedBy="dossiersSecondaire" , cascade={"persist"})
 * @ORM\JoinTable(name="dossier_societe")
 */
private $societeSecondaire;

Et que vous voulez ramener toutes les lignes contenant ce critère, il suffit de faire  :

->where(':societeATrouver MEMBER OF d.societeSecondaire')