Задать вопрос
Nikolino
@Nikolino

Как получить user name у belongsTo коллекции?

В контроллере
public function getUserPhotos($id)
    {
        $photos = Photo::with('user')->where('user_id', $id)->get();
        $user = User::find($id);
        return view('user.userphotos', [
            'photos' => $photos,
            'user' => $user
        ]);
    }


Если проходиться foreach по $photos, то имя пользователя могу получить, если же просто хочу вывести $photos->user->name, то не дает.
Из-за этого приходится делать так $user = User::find($id); и делает еще один запрос к базе.
Можно ли сделать так, чтобы не лезть еще раз в базу получая username?
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
SerafimArts
@SerafimArts
Senior Notepad Reader
Ну так:
$user = User::with('photos')->where('id', $id)->first();

return \view('....', ['photos' => $user->photos, 'user' => $user]);
Ответ написан
Комментировать
$photos - массив, у него нет свойства name, это свойство есть только у элементов этого массива.
Так что только способ с отдельным получением юзера, зато можно убрать выборку пользователя для фотографии.
Ответ написан
Ваш ответ на вопрос

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

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