【发布时间】:2014-02-11 10:48:34
【问题描述】:
我正在使用 Haversine 公式在 laravel 4.1 中创建附近的函数,我的原始查询:
$haversine = '(3959 * acos(cos(radians(' . $lat . ')) * cos(radians(lat)) * cos(radians(lng) - radians(' . $lng . ')) + sin(radians(' . $lat . ')) * sin(radians(lat))))';
$places = DB::table('b_details')
->select(DB::raw($haversine . ' as distance'))
->orderBy('distance', 'ASC')
->having('distance', '<', $radius)
->get();
foreach ($places as $place) {
var_dump($place);
}
这只会像这样返回计算结果:
object(stdClass)[231]
public 'distance' => float 0.037140269070672
object(stdClass)[232]
public 'distance' => float 0.093237928677323
object(stdClass)[233]
public 'distance' => float 0.4404396657947
我无法访问更多数据,例如:
foreach ($places as $place) {
var_dump($place->name);
}
产生这个错误:
Undefined property: stdClass::$name
感谢任何帮助,谢谢。
【问题讨论】: