Условие запроса с вычисляемым полем - PullRequest
0 голосов
/ 25 марта 2019

Я хотел бы выполнить запрос, учитывая, что одно из полей рассчитывается (расстояние).

У меня есть что-то вроде этого

$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 будет объектом, логическое значение задано

Уверен, я все делаю неправильно, но я не знаю, как это можно сделать.

Спасибо за вашу помощь:)

...