在Laravel中计算后,发出从mysql表中检索id的问题

时间:2014-04-16 17:38:19

标签: php mysql laravel

我有一个有效的距离计算查询,即它返回最近的点,但它只是产生一个距离数组。我想要做的是检索存储在数组中的点的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

2 个答案:

答案 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')))