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 32 33 34 35 36 37 38
|
<?php
$commandes['midi'] = array();
//on extrait le calcul de l'incrémentation de la boucle, bonne pratique.
$nbElements = $this->nblignes * $this->joursparligne;
for ($i = 0; $i < $nbElements; $i++):{
$ladate = new \DateTime('+' . $i . 'day');
$commandemidi = $this->get('repas.default.manager.commandemidi')->loadOneCommande($userOnline, $ladate);
//Si tu récupère ton élément par date, il me semble inutile de définir la ligne suivante la date de ce même element.
//$commandemidi->setDateCommande($ladate);
//pourquoi utiliser une méthode quand tu peux utiliser du language intuitif.
//array_push($commandes['midi'], $commandemidi);
$commandes['midi'][] = $commandemidi;
//inutile, tu l'écrase l'itération suivante
//unset($commandemidi);
dump($commandes['midi']);
}
//Pour ma part j'aurais écrit ca comme ca :
$commandes['midi'] = $this->get("CommandRepository")->getCommandes($userOnline, $dateMin, $dateMax);
//Et dans le Repo un truc du genre :
public function getCommandes($userOnline, $duree){
$qb = $this->getEntityManager()->createQueryBuilder("c");
$result = $qb
->where("s.date < :maxDate")
->addWhere("s.date >= :minDate")
->setParameter(":maxDate", new \DateTime('+' . $duree . 'day');)
->setParameter(":minDate",new \DateTime())
->getQuery()
->execute()
;
return $result;
} |
Partager