«Свойство [роль] не существует в этом экземпляре коллекции». - PullRequest
0 голосов
/ 02 августа 2020

У меня есть метод, который проверяет, равна ли роль 1, а затем отправляет обратно некоторые данные. Метод выглядит так:

 if($user->role == 1) {
                $dmca = Dmca::get()->take(5);

                $data = [
                    'status' => 200,
                    'data' => $dmca
                ];

                return response($data);
            } else {
                $dmca = Dmca::where('client', $request->user_id)->get()->take(5);

                $data = [
                    'status' => 200,
                    'data' => $dmca
                ];

                return response($data);
            }
        }

В дампе и d ie экземпляра $ user вы можете видеть, что роль существует и установлена. Но при возврате я получаю сообщение об ошибке

#attributes: array:11 [
        "id" => 1
        "name" => null
        "email" => "Grahammorbydev@gmail.com"
        "model_name" => "man"
        "subscribed" => 0
        "email_verified_at" => null
        "password" => "$2y$10$yy1Yj.GGez7efEdFdkjaf.RlQS17Zc7QYUANz3RvdE00fVm0f9AYq"
        "role" => 1
        "remember_token" => null
        "created_at" => "2020-07-05 17:54:38"
        "updated_at" => "2020-07-05 17:54:38"
      ]
     

Получение следующей ошибки, когда ax ios возвращает

"Property [role] does not exist on this collection instance."

1 Ответ

1 голос
/ 02 августа 2020

Как показано сообщение об ошибке

«Свойство [роль] не существует в этом экземпляре коллекции».

Это означает, что $user является экземпляром of Collection

Необходимо изменить

$user = User::where('id', $request->user_id)->get();

На это

$user = User::where('id', $request->user_id)->first();
  • get(): возвращает коллекцию моделей, соответствующих запросу.
  • first(): возвращает первую запись, найденную в базе данных. Если подходящей модели не существует, возвращается значение null.

подробнее

...