私はこのクエリを実行しようとしています:
public function getLakesNearby($minLat, $maxLat, $minLng, $maxLng, $lat, $lng, $limit)
{
$query = $this->_em->createQuery(' SELECT a
FROM MycBundle:Lake a
WHERE a.latitude > :minLat AND a.latitude < :maxLat AND a.longitude > :minLng AND a.longitude < :maxLng
ORDER BY ABS(a.latitude - :lat) + ABS(a.longitude - :lng) ASC
LIMIT :limit ');
$query->setParameters(array('minLat' => $minLat, 'maxLat' => $maxLat, 'minLng' => $minLng, 'maxLng' => $maxLng, 'Lat' => $lat, 'Lng' => $lng, 'limit' => $limit));
return $query->getResult();
}
これによりエラーが発生します
[構文エラー] 行 0、列 234: エラー: 文字列の末尾が予期されていましたが、'(' を取得しました
Doctrine が orderby で ABS() をサポートしていないことがわかりました。
それを機能させるための解決策を見つけるのを手伝ってください。
ありがとう