使用数组循环时不能将 stdClass 类型的对象用作数组
Cannot use object of type stdClass as array when looping with array
我正在尝试获取一个名为 TestRunList 的 table 的计数,它的外键与另一个名为 Testrun 的 table 相同,这意味着我想计算单个测试运行有多少个 testrunlist在同一页上我做了一个 forloop 来为每个测试运行列表获取测试运行 ID 但它似乎没有用我得到这个错误
Cannot use object of type stdClass as array
这是我在控制器中的代码
$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);
$data
是一个Collection
,不能用数组语法访问
$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);
始终使用
print_r($data);
如果是对象 运行 echo $data->username if array 运行 echo $data['username'];
所以你知道你正在处理什么类型的数据。
我正在尝试获取一个名为 TestRunList 的 table 的计数,它的外键与另一个名为 Testrun 的 table 相同,这意味着我想计算单个测试运行有多少个 testrunlist在同一页上我做了一个 forloop 来为每个测试运行列表获取测试运行 ID 但它似乎没有用我得到这个错误
Cannot use object of type stdClass as array
这是我在控制器中的代码
$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);
$data
是一个Collection
,不能用数组语法访问
$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);
始终使用
print_r($data);
如果是对象 运行 echo $data->username if array 运行 echo $data['username'];
所以你知道你正在处理什么类型的数据。