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

因此,当我尝试从带有数组的 DB 中检索数据时,出现此错误“无法使用 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();


倚天杖
浏览 173回答 1
1回答

慕标琳琳

您没有为$cases要返回到视图的变量分配任何内容。所以在这一行: $this->getCaseData($id);您调用下面的函数 set $this->data,但它不会$case在openingPage()方法中的任何一点分配。当您返回带有名为“cases”的变量的视图时,它没有什么可发送的:return view('caseopener', ['cases' => $cases]);分配变量 $cases: $cases = $this->getCaseData($id);或返回类变量:return view('caseopener', ['cases' => $this->data]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python