与数组循环时,不能使用stdClass类型的对象作为数组

时间:2017-10-25 11:30:19

标签: php laravel laravel-4

我试图获取一个名为TestRunList的表的Count,该表的外键与另一个名为Testrun的表相同,这意味着我想知道单个testrun在同一页面中有多少个testrunlist我做了一个forloop为每个testrunlist获取testrun id,但它似乎没有工作我得到这个错误

  

不能使用stdClass类型的对象作为数组

继承我控制器中的代码

        $data = DB::table('TestRun')->get();
        $runs=array();
        for ($i=0;$i<sizeof($data);$i++)
        {
            $testrunID=$data[$i]['TestRunID'];
            $Testrunlist=TestRunList::where('test_run_id',$testrunID)->count();
            $runs[$i]=[
                'Countruns'=>$Testrunlist
            ];

        }

    return view('management.testrun.testrun-list')
        ->with('data',$data)
        ->with('runs', $runs);

2 个答案:

答案 0 :(得分:1)

$dataCollection,您无法使用数组语法

进行访问
$data = DB::table('TestRun')->get();
$runs = [];
$data->each(function ($row) use ($runs) {
    $runs[] = [
        'Countruns' => TestRunList::where('test_run_id',$row-> TestRunID)->count()
    ];
});

return view('management.testrun.testrun-list')
    ->with('data',$data)
    ->with('runs', $runs);

答案 1 :(得分:0)

始终使用

  

print_r($data);

如果它的对象运行echo $ data-&gt;用户名,如果数组运行echo $ data [&#39;用户名&#39;];

所以你知道你正在处理什么类型的数据。