如何在cakephp 3的get_distance_in_miles
之间找到geo_locations
通过使用类似cake php 2的字段,而不是通过核心php查询。通过这种方法
$data = $this->Restaurant->find('all', array(
"fields" => array("get_distance_in_miles_between_geo_locations($lat,$long,Restaurant.latitude,Restaurant.longitude) as distance", "Restaurant.*,RestaurantsType.*"),
"ORDER BY" => 'DESC',
));
答案 0 :(得分:1)
您的问题不是很清楚,您的代码会在cake2中引发错误
无论如何,我想您有一个用户定义的函数,并且想使用它。在cake3中执行此操作的方法是:
或者您最好使用Cake SQL函数
$query = $this->Restaurants->find();
$query->select([
'distance' => $query->func()->get_distance_in_miles_between_geo_locations([
$lat,
$long,
'Restaurants.latitude' => 'identifier',
'Restaurants.longitude' => 'identifier'
])
])
请注意,我已将Restaurant
更改为Restaurants
,并将RestaurantsType
更改为RestaurantsTypes
,以遵循蛋糕3的命名约定