在php中从对象检索数据

在php中从对象检索数据,php,mysql,laravel,Php,Mysql,Laravel,通过以下距离查询从MySQL成功检索到$competitors后 $competitors = DB::table('homes') -> select(array('*', DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance'))) -> having('distance', '<', $micromarket_si

通过以下距离查询从MySQL成功检索到
$competitors

$competitors = DB::table('homes')
    -> select(array('*', DB::raw('SQRT(POW('.$Eastings.' - `Eastings`,2) + POW('.$Northings.' - `Northings`,2)) AS distance')))
    -> having('distance', '<', $micromarket_size)
    -> get();
但是得到错误:

正在尝试获取非对象的属性

然后我想我会环游所有的竞争对手:

foreach ($competitors as $competitor) {
    $i=0;
    $id[$i]           = $competitor->id;
    $fees[$i]         = $competitor->minSingleCareFee;
    $occupancy[$i]    = $competitor->Average_Occupancy;
    $i = $i + 1;
};
然后尝试以下操作:

echo $id[2];
但我还是犯了一个错误。感谢您的帮助

试试这个

echo '<pre>';
var_dump($competitors);
echo '</pre>';

 $queries = DB::getQueryLog();
 $last_query = end($queries);
 echo $last_query;
 die();
echo';
var_dump(竞争对手);
回声';
$queries=DB::getQueryLog();
$last_query=end($querys);
echo$last_查询;
模具();
并在phpmyadmin或任何其他编辑器中运行sql查询:

所以我发现我可以通过
$competitors[I]->id
而不是
$competitors->id[I]
访问属性


谢谢你的帮助

在您的示例中,
$competitors
是一个集合,因此您可以这样循环它:


$competitors->id[2]没有意义。从数据库中可以得到一个字符串或数字,而不是数组。那么,
$id[2]
呢?您确定报税表中有
id=2
echo '<pre>';
var_dump($competitors);
echo '</pre>';

 $queries = DB::getQueryLog();
 $last_query = end($queries);
 echo $last_query;
 die();
foreach($competitors as $competitor) {
    echo $competitor->id; // use other properties like same way
}