Laravel 5.8 Красноречивый запрос - PullRequest
0 голосов
/ 21 апреля 2019

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

У меня есть сетка рецептов, которые были загружены различными пользователями. Модель пользователя и рецепта ниже.

Модель пользователя

public function recipes()
{
    return $this->hasMany('App\Recipe');
}

Модель рецепта

public function user()
{
    return $this->belongsTo('App\User');
}

В моей таблице рецептов у меня есть следующий код в карточке рецепта.

Указательный блейд / просмотр

@foreach($recipes as $recipe)
<img class="recipeProfilePic" src="/storage/profile_pictures/{{What goes here}}" alt=""><a
        href="{{ route('user', $recipe->user_id) }}">
    <small>{{$recipe->author}}</small>
</a>
@endforeach

С помощью рецепта $ я могу получить доступ к имени создателя этого конкретного рецепта, как этот $recipe->author. Я пытаюсь получить доступ к этой конкретной фотографии профиля пользователя тоже. Я хочу получить что-то вроде этого $recipe->author->profile_pic. (profile_pic - это столбец в моей таблице пользователей).

Как бы я решил эту проблему простым способом? Я новичок в кодировании и до сих пор работаю над решением этих проблем самостоятельно. Спасибо!

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

Вы можете изменить модель, переименовав user в author следующим образом:

public function author()
{
    return $this->belongsTo('App\User');
}

или изменив представление (лезвие) следующим образом:

@foreach($recipes as $recipe)
<img class="recipeProfilePic" src="/storage/profile_pictures/{{What goes here}}" alt=""><a
        href="{{ route('user', $recipe->user_id) }}">
    <small>{{$recipe->user->profile_pic}}</small>
</a>
@endforeach
1 голос
/ 21 апреля 2019

Вы можете сделать это так:

$recipe->user->profile_pic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...