ErrorException: попытка получить свойство user_id не-объекта

Я использую $hidden и $appends, чтобы скрыть ключевое слово pivot из массива json и вытащить объекты в основной массив. В игровой модели я добавил ниже скрипт для выполнения функций, как я сказал выше.

    protected $hidden = ['pivot'];
    protected $appends = ['user_id','highscore', 'level'];

    public function getUserIdAttribute()
    {
        return $this->pivot->user_id;
    }

    public function getHighScoreAttribute()
    {
        return $this->pivot->highscore;
    }

    public function getLevelAttribute()
    {
        return $this->pivot->level;
    }

Теперь проблема в том, что я хочу получить все игры, и я знаю, что это так просто, я просто добавил в контроллер ниже скрипт.

$Games = Game::all();
return new GameResource($Games); /* GameResource is for API */

Но это возвращает следующую ошибку после добавления вышеуказанного скрипта в модель.

ErrorException: Trying to get property user_id of non-object 

Любой может подсказать мне, как управлять обеими функциями, потому что мне нужны обе функции. Буду признателен, если кто-нибудь любезно направит вас.

После комментария @emix

@emix не дублируется, потому что ссылка касается ядра php, а я использую laravel. Конечно, laravel построен на php, но все же есть сложная структура, поэтому я думаю, что это не то же самое, что вы упомянули

Возможный дубликат Ссылка - что означает эта ошибка в PHP?

emix 07.11.2018 13:23

@emix не дублируется, потому что ссылка касается ядра php, а я использую laravel. Конечно, laravel построен на php, но все же есть сложная структура, поэтому я думаю, что это не то же самое, что вы упомянули

Script Lover 07.11.2018 13:25

Очевидно, ваш класс GameResource пытается получить доступ к свойству pivot, которое имеет значение NULL. Упомянутая Wiki хорошо объясняет, как справляться с такими ситуациями.

emix 07.11.2018 13:26

@emix выше одного настолько полезен, не могли бы вы помочь мне еще, пожалуйста

Script Lover 07.11.2018 13:28

@ScriptLover, можете ли вы опубликовать отношения пользователей вашей игровой модели?

adam 07.11.2018 16:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
5
514
1

Ответы 1

Сводная диаграмма доступна только тогда, когда вы выбираете модели через отношение «многие ко многим» (BelongsToMany). Сводная таблица представляет поля сводной таблицы (например, games_users) и, следовательно, поля, которые существуют для этой конкретной связи.

Когда вы просто извлекаете данные непосредственно из игровой модели (также известной как игровая таблица), у вас нет отношений или сводной таблицы, из которой можно было бы извлекать данные.

Другие вопросы по теме