Я хотел бы выполнить запрос, учитывая, что одно из полей рассчитывается (расстояние).
У меня есть что-то вроде этого
$qb = $this->createQueryBuilder('p')
->andWhere('p.isPublicPlace = :classic')
->andWhere('p.titlePlace LIKE :search OR p.categoryPlace LIKE :search')
->andWhere('p.categoryPlace LIKE :categoryPlace')
Это работает.
Теперь я добавлю фильтр после вычисления расстояния
$dist = "ACOS( SIN( RADIANS(latitude))* SIN( RADIANS('.$user_lat.')) + COS( RADIANS(latitude)) * COS(RADIANS('.$user_lat.')) * COS(RADIANS(longitude) - RADIANS('.$user_lng.'))) * 6380) as distance";
$qb = $this->createQueryBuilder('p')
->select($dist)
->andWhere('p.isPublicPlace = :classic')
->andWhere('p.titlePlace LIKE :search OR p.categoryPlace LIKE :search')
->andWhere('p.categoryPlace LIKE :categoryPlace')
->having('distance' < ':maxDistance')
->orderBy('distance')
Но это не работает. У меня есть сообщение об ошибке в строке
.
(1/2) ContextErrorException
Предупреждение: get_class () ожидает, что параметр 1 будет объектом, логическое значение задано
Уверен, я все делаю неправильно, но я не знаю, как это можно сделать.
Спасибо за вашу помощь:)