Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tri MYSQL avec doctrine

Vous ne pouvez pas simplement énumérer ORDER BY directives à la Doctrine. Vous pouvez donner un seul ->orderBy() appel de méthode, en donnant le champ à utiliser et la direction (optionnel, ASC est par défaut) comme arguments, et d'autres champs de commande doivent être ajoutés en utilisant le addOrderBy méthode. Votre requête devrait ressembler à

$query->select("sp")
    ->from("CoreBundle:ServiceProvider","sp")
    ->andWhere("sp.city = :city_name")->setParameter("city_name",$cityName)
    ->innerJoin("sp.offers","offer")
    ->innerJoin("offer.service","service","with","offer.service = service")
    ->orderBy("sp.points", "DESC")
    ->addOrderBy("sp.name", "ASC")
    ->addOrderBy("service.points");

Voir la documentation sur ce sujet.