迭代Laravel控制器中的结果集

时间:2015-01-31 20:19:38

标签: laravel eloquent

我试图在控制器端简单地迭代laravel中的结果集。这是我尝试过但我收到以下错误:

Cannot use object of type stdClass as array

Controller snippet:

$result = DB::select($query);

foreach($result as $r){
    echo $r['email'];
}

我感谢任何帮助,

提前致谢!

2 个答案:

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