【问题标题】:Doctrine select between two coords两个坐标之间的学说选择
【发布时间】:2016-04-07 09:04:23
【问题描述】:

如何合并?

$collection = $this->em->getRepository('User')->createQueryBuilder('u');
$collection = $collection->where('u.user IN (:followers)');

 $collection->addSelect(
     '(3959 * acos(cos(radians(' . 47.2146561 . '))' .
     '* cos(radians(p.latitude))' .
     '* cos(radians(p.longitude)' .
     '- radians(' . 38.920443 . '))' .
     '+ sin(radians(' . 47.2146561 . '))' .
     '* sin(radians(p.latitude)))) as distance' )->where('p.user = :user');

【问题讨论】:

    标签: php mysql symfony doctrine-orm doctrine


    【解决方案1】:

    我不确定这是你想要做的,但我猜你想加入一个职位表并添加如下选择:

    $collection = $this->em->getRepository('User')->createQueryBuilder('u');
    $collection->join('u.position', 'p')
               ->where('u.user IN (:followers)')
               ->addSelect(
            '(3959 * acos(cos(radians('.47.2146561.')) * cos(radians(p.latitude)) * cos(radians(p.longitude) - radians('.38.920443.')) + sin(radians('.47.2146561.')) * sin(radians(p.latitude)))) as distance'
        )
    

    我希望这会有所帮助。

    但是,您的代码中仍有一些我无法理解的地方。为什么要使用硬编码值的连接? 如果目标是使用变量,那么您做出了正确的选择。

    下次询问时请提供更多信息(如position 表)

    【讨论】:

    • 谢谢回复。用于测试的硬编码值 :) 效果很好,但返回一个我想要的对象数组的多维数组
    • 哦!我找到了解决办法!将距离更改为隐藏距离。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2010-11-23
    • 2011-05-09
    • 2013-03-19
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多