我有一个有效的距离计算查询,即它返回最近的点,但它只是产生一个距离数组。我想要做的是检索存储在数组中的点的ID,以便我可以访问更多数据。
以下是查询:
$Eastings = $asset->Eastings;
$Northings = $asset->Northings;
$micromarket_size = 10000;
$competitors = DB::table('homes')
-> select(DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance'))
-> having('distance', '<', $micromarket_size)
-> get();
试图像这样访问id:
$competitors->id;
产生错误trying to get property of non-object
答案 0 :(得分:0)
使用DB :: table() - &gt; get()获取std对象数组,如果只想检索一个模型,请用第一个()替换get()。否则从数组中获取单个元素。
答案 1 :(得分:0)
您的选择查询未请求ID字段:
->select(array('id', DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance')))