如何在Laravel中从具有多个用户的数据的数据库中仅为特定用户获取数据

时间:2019-04-20 13:37:29

标签: laravel-5.7

我正在尝试根据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;

我通过删除其他用户的数据进行了测试,并且一切正常,但是如果我将其他用户的数据返回到表中,则会收到该错误

1 个答案:

答案 0 :(得分:1)

我建议删除此行

    $products = json_decode(json_encode($allProducts));

只需使用

    $products = $allProducts;

因为您使用json_decode所做的就是制造问题的原因