因此,当我尝试从具有数组的数据库中检索数据时,出现此错误“无法将stdClass类型的对象用作数组”
我的控制器
public function openingPage($id) {
$this->getCaseData($id);
return view('caseopener', ['cases' => $cases]);
}
private function getCaseData($id) {
$cases = DB::table('cases')->where('id', $id)->first();
$data = @$cases[0] ? $cases[0] : array();
if(isset($data->items)) {
$data->items = json_decode($data->items, true);
}
$this->data = $data;
}
我也看到问题出在这一行:
$data = @$cases[0] ? $cases[0] : array();
答案 0 :(得分:0)
您没有为返回视图的$cases
变量分配任何内容。所以在这一行:
$this->getCaseData($id);
您调用下面的函数,该函数设置$this->data
,但是在$case
方法中的任何时候都不会分配openingPage()
。然后,当您使用名为“ cases”的变量返回视图时,它没有任何可发送的内容:
return view('caseopener', ['cases' => $cases]);
分配变量$ cases:$cases = $this->getCaseData($id);
或返回类变量:
return view('caseopener', ['cases' => $this->data]);