通过关系访问数据 Laravel

Accessing data trough relationship Laravel

我有两个tables/models。用户和广告。

当用户发布广告时,他们的用户 ID 是数据库行中的一列。我想使用 id 获取用户详细信息并将其显示在 blade 模板中。

这些是模型

广告属于用户。

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

用户有很多广告。

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

在广告展示页面上,我想在旁边打印用户名和详细信息。目前我只能访问 ID,因为它作为 attirbute 存储在数据库的广告列中。我如何使用这种关系来访问用户数据。

这是节目控制器

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'));

    }

在显示页面视图中,我可以像这样访问用户 ID {{$user->id}}

您正在使用传递给 show 函数的 $id 来检索用户和广告。

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 以更好地了解 eloquent 如何处理关系。