Доступ к данным через отношения Laravel - PullRequest
0 голосов
/ 21 мая 2018

У меня есть две таблицы / модели.Пользователь и реклама.

Когда пользователь публикует объявление, его ИД пользователя - это столбец в строке базы данных.Я хочу использовать идентификатор, чтобы получить информацию о пользователе и показать ее в шаблоне блейда.

Это модели

Объявление принадлежит пользователю.

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

У пользователя много объявлений.

class User extends Authenticatable
{
    public function advert(){
      return $this->hasMany('App\Advert);
    }
}

На странице показа рекламы я хочу, чтобы рядом с ней было напечатано имя пользователя и детали.В настоящее время я могу получить доступ только к идентификатору, поскольку он хранится как атрибут в столбце рекламы в БД.Как я могу использовать это отношение для доступа к данным пользователей.

Это контроллер show

public function show($id){
      //Shows add user clicked on based on id
      $user = User::where('id', $id)->first();
      $Advert = Advert::where('id', $id)->first();
      return view('pages/advert/show', compact('Advert', 'user'));

    }

В режиме просмотра страницы show я могу получить доступ к идентификатору пользователя, например, {{$user->id}}

1 Ответ

0 голосов
/ 21 мая 2018

Вы используете $id, переданный в вашу функцию show, для получения информации как о пользователе, так и о рекламном объявлении.

public function show($id){
    // Get the avert with the passed in id
    $advert = Advert::find($id);
    // From the advert get the user related to it.
    $user = $advert->user;
    return view('pages/advert/show', compact('advert', 'user'));
}

Чтобы лучше понять, посмотрите на https://laravel.com/docs/5.6/eloquent-relationships#querying-relationsо том, как красноречиво работает с отношениями.

...