Bonjour,
J'ai un form qui comporte uniquement un champ Address, en résumé, le site géolocalise grâce a cette adresse et affiche les items mais sans tri de distance !
Voici ma requete dans mon repo :
La requête fonctionne très bien mais quand je rajoute :
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 /** * @return Query */ public function findAllVisibleQuery(AdSearch $search): Query { $query = $this->findVisibleQuery(); if ($search->getLat() && $search->getLng() && $search->getDistance()) { $query = $query ->select('a') ->andWhere('(6353 * 2 * ASIN(SQRT( POWER(SIN((a.lat - :lat) * pi()/180 / 2), 2) +COS(a.lat * pi()/180) * COS(:lat * pi()/180) * POWER(SIN((a.lng - :lng) * pi()/180 / 2), 2) ))) <= :distance') ->setParameter('lng', $search->getLng()) ->setParameter('lat', $search->getLat()) ->setParameter('distance', $search->getDistance()); } private function findVisibleQuery(): QueryBuilder { return $this->createQueryBuilder('a') ->where('a.publishedAt != false'); }
J'ai le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ->orderBy('a.distance', 'ASC')
Alors, j'ai bien compris le message il ne trouve pas de champ ou d'association nommée distance ok mais comment faire pour avoir un tri de la distance la plus petite a la distance la plus grande.[Semantical Error] line 0, col 253 near 'distance ASC': Error: Class App\Entity\Ad has no field or association named distance
je vous remercie les amis![]()
Partager