我正在尝试根据laravel中登录的用户显示数据库中的数据。
如果有一个用户的数据,一切都会很好,但是如果另一个用户向表中添加数据,我会收到错误消息:无法将stdClass类型的对象用作数组
这是我如何在控制器中获取数据
public function viewBookings() {
$allProducts = Booking::get()->where('client', Auth::user()->name);
$products = json_decode(json_encode($allProducts));
foreach ($products as $key => $val) {
$service_name = Service::where(['id' => $val->service])->first();
$service_fee = Charge::where(['id' => $val->charge])->first();
$service_status = Status::where(['id' => $val->status])->first();
$products[$key]->service_name = $service_name->name;
$products[$key]->service_fee = $service_fee->total;
$products[$key]->service_status = $service_status->name;
}
return view('client.booking.view_bookings')->with(compact('products'));
}
此行指示错误
$products[$key]->service_name = $service_name->name;
我通过删除其他用户的数据进行了测试,并且一切正常,但是如果我将其他用户的数据返回到表中,则会收到该错误
答案 0 :(得分:1)
我建议删除此行
$products = json_decode(json_encode($allProducts));
只需使用
$products = $allProducts;
因为您使用json_decode所做的就是制造问题的原因