Как получить данные только для конкретного пользователя из базы данных с данными нескольких пользователей в laravel - PullRequest
1 голос
/ 20 апреля 2019

Я пытаюсь отобразить данные из базы данных на основе зарегистрированного пользователя в 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 Ответ

1 голос
/ 23 апреля 2019

Я бы предложил удалить эту строку

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

и просто использовать

    $products = $allProducts;

, поскольку то, что вы делаете с кодом json_decode, создает проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...