Bonjour,
J'ai 2 entités : GallerieCategorie et GalleryPhoto relié en many-to-one bidirectionnelle.
Voici les extrait de mes entités:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class GalleriePhoto { /** * Date de mise en ligne de la photo * * @var \DateTime * * @ORM\Column(name="date", type="datetime") */ private $date; /** * @ORM\ManyToOne(targetEntity="MonBundle\Entity\GallerieCategorie", inversedBy="photos") * @ORM\JoinColumn(nullable=false) */ private $categorie; }Ce que j'aimerais, c'est envoyé à twig la liste des catégorie triée par ordre de la dernière mise a jour (d'où l'utilité de getDate() de la classe GallerieCategorie).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31 class GallerieCategorie { /** * Liste des photos * * @ORM\OneToMany(targetEntity="MonBundle\Entity\GalleriePhoto", mappedBy="categorie") */ private $photos; // il existe pas d'attribut date /** * @return \DateTime * La date de mise en ligne de la photo la plus récente de la catégorie */ public function getDate() { $dernier = null; foreach ($this->photos as $photo) { if($dernier == null) $dernier = $photo->getDate(); else if ($photo->getDate() > $dernier) $dernier = $photo->getDate(); } return $dernier; } }
J'ai évidemment essayer ceci depuis le controlleur (en croisant les doigt mais en espérant peu) :
Y-a-t-il un autre moyen que d'enregistrer en dur la date de la dernière mise à jour lors de l'ajout de photo ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $repository = $this->getDoctrine()->getManager()->getRepository("MonBundle:GallerieCategorie"); $listCategories = $repository->findBy(array(), array("date"=>"DESC"), null, null);
J'ai pensé à utiliser sort() sur la tableau retourné par le repository mais il faut qu'il fasse la comparaison sur getdate().
Existe-t-il un équivalent du compareTo de java ?
merci d'avance
Partager