gpt4 book ai didi

symfony - 找不到 Doctrine Query Builder ACOS 函数

转载 作者:行者123 更新时间:2023-12-02 18:48:04 24 4
gpt4 key购买 nike

我想计算我的自定义存储库类中的距离。问题是 Doctrine 在处理 ACOS 函数时抛出异常:

[Syntax Error] line 0, col 70: Error: Expected known function, got 'ACOS'

这是查询:

public function findLocation($latitude, $longitude)
{
$em = $this->getEntityManager();
return $em->createQueryBuilder()
->select('((ACOS(SIN('.$latitude.' * PI() / 180) * SIN(p.latitude * PI() / 180) + COS('.$latitude.' * PI() / 180) * COS(p.latitude * PI() / 180) * COS(('.$longitude.' – p.longitude) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS distance')
->from('StrictPlaceBundle:Poi', 'p')
->add('orderBy', 's.distance ASC')
->getQuery()->getResult();
}

可能出了什么问题?

最佳答案

ACOS 是 not supported by DQL 。当然,您可以自己添加它(请参阅 Adding your own functions to the DQL language )。

此外,您需要的三角函数的 MySQL 实现是 DoctrineExtensions 的一部分。 :

关于symfony - 找不到 Doctrine Query Builder ACOS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com