我试图在控制器端简单地迭代laravel中的结果集。这是我尝试过但我收到以下错误:
Cannot use object of type stdClass as array
Controller snippet:
$result = DB::select($query);
foreach($result as $r){
echo $r['email'];
}
我感谢任何帮助,
提前致谢!
答案 0 :(得分:16)
您需要将其用作对象:
$result = DB::select($query);
foreach($result as $r){
echo $r->email;
}
或者,如果由于某种原因您想将其用作数组,则需要先将其转换为:
$result = DB::select($query)->toArray();
foreach($result as $r){
echo $r['email'];
}
答案 1 :(得分:0)
从数据库中提取数据后,您可以将其转换为数组,但是它是可选的,这取决于您的需要,然后您可以简单地使用 foreach 遍历每个不同的对象并访问其属性
$data = DB:: table('categories')
->where('parent_id', $request->value)
->get()->toArray();
$output = '<option value="">Select '.ucfirst($request->dependent).'</option>';
foreach($data as $row){
$output.= '<option value="'.$row->id.'">'.$row->title.'</option>';
}
return response($output, 200);