在使用 CakePHP 2.2.4 中的半正弦公式计算距离时,我试图对结果列表进行分页,但在 having 子句中的计算字段周围出现错误。
我认真地花了数周时间试图弄清楚这一点,但我做不到。我已经阅读了几篇文章,有些说我需要覆盖计数方法,有些说尝试其他但与旧版本的 Cake 相关的东西。
有人可以告诉我我需要做什么才能让这个工作吗?一定有数百人试图实现同样的目标并取得成功!
我正在使用的代码是:
'Business' => array(
'conditions' => array(
'Business.is_active' => 1
),
'fields' => array(
'Business.*',
'( 6371 * acos( cos( radians(' . $location['Location']['latitude'] . ') ) * cos( radians( Business.latitude ) ) * cos( radians( Business.longitude ) - radians(' . $location['Location']['longitude'] . ') ) + sin( radians(' . $location['Location']['latitude'] . ') ) * sin( radians( Business.latitude ) ) ) ) AS distance'
),
'group' => array(
'Business.id HAVING distance <= 5',
),
'contain' => array(
'UserReview',
'Certification',
'Package' => array(
'MassageType',
'PackageVariation' => array(
'order' => array(
'cost_in_dollars' => 'ASC'
)
)
)
),
'order' => array(
'distance' => 'ASC',
'Business.name' => 'ASC',
)
)
我不断收到的错误是:
错误:SQLSTATE [42S22]:未找到列:1054“有子句”中的未知列“距离”
请帮忙!