Я использую $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, но все же есть сложная структура, поэтому я думаю, что это не то же самое, что вы упомянули
@emix не дублируется, потому что ссылка касается ядра php, а я использую laravel. Конечно, laravel построен на php, но все же есть сложная структура, поэтому я думаю, что это не то же самое, что вы упомянули
Очевидно, ваш класс GameResource пытается получить доступ к свойству pivot, которое имеет значение NULL. Упомянутая Wiki хорошо объясняет, как справляться с такими ситуациями.
@emix выше одного настолько полезен, не могли бы вы помочь мне еще, пожалуйста
@ScriptLover, можете ли вы опубликовать отношения пользователей вашей игровой модели?






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