daager
@daager

Как правильно запросить данные из модели через json?

Есть модель User(belongsToMany) и Artist.
Запрос User::find(1)->artists возвращает мне список артистов, всё норм.
Но при запросе этих данных через json:
return response()->json(['success'=>true,'user'=>User::find($user_id)]);

отказывается это делать.
Дописываю в модели User:
$appends=['artists'];
Жалуется, что нет метода getArtistsAttribute(), если же его создать, то данные всё равно не отдает ничего. Но если в appends написать другое название и метод к нему, тогда в json возвращается и artists и придуманное поле, с дублирующим наполнением.
Чего делать? Как получить нужное мне поле без танцев с бубном?
Спасибо.
P.S.
Пока решил проблему так:
$user=User::find($user_id);
$user['artists']=$user->artists;
return response()->json(['success'=>true,'user'=>$user]);
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Можно не плясать с бубном, а почитать документацию про связи, из которой узнать про методы with() и load().

А если не стесняться открывать код базовой модели, то и про свойство with = [] можно узнать...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Steein
@Steein
Программист
//Первый
$user = User::find($user_id);

//Второй
$user = User::where('id', $user_id)->first();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы