Doctrine QueryBuilder로 "간단한"쿼리를 작성하는 데 문제가 있습니다. 나는 최대 10km에있는 "사람"을 얻으려고 노력한다.Doctrine, QueryBuilder : 괄호와 함께 "where"를 사용하십시오.
내 쿼리 :
$QB = $this->createQueryBuilder('p');
$QB->add('select', 'p')
->add('from', 'MyProject\Bundle\FrontBundle\Entity\Pro p')
->where('p.job = :job')
->andWhere('(3956 * 2 * ASIN(SQRT(POWER(SIN((:latitude - abs(pro.latitude)) * pi()/180/2),2) + COS(:latitude * pi()/180) * COS(abs(pro.latitude) * pi()/180) * POWER(SIN((:longitude - pro.longitude) * pi()/180/2), 2)))) <= 10')
->addOrderBy('p.dateCreation', 'DESC')
->addOrderBy('p.id', 'DESC')
->setParameter('latitude', $latitude)
->setParameter('longitude', $longitude)
->setParameter('job', $jobId);
문제는 두 번째 '여기서'문에, 교리 때문에 다음 괄호의 "ASIN"에 실패합니다. 함수를 실행하려고합니다 ... 탈출 할 방법이 있습니까? 또는이 조건을 구성하는 또 다른 방법은 무엇입니까? 전문 교리
감사합니다, 만약 내가 제대로 이해)
그래서 구현해야합니다 : ASIN, SQRT, POWER, SIN, ABS, PI, COS ... 젠장 ... – Doubidou
내가 말했듯이 (또는 쓴), 당신은 단지 언급 된 번들을 프로젝트에 추가해야합니다. DQL 함수는 이미 https://github.com/wiredmedia/doctrine-extensions#including-doctrine 확장에 나열된대로 구현됩니다. –