我有两个表/型号。用户和广告。
当用户发布广告时,其用户标识是数据库行中的列。我想使用id来获取用户详细信息并将其显示在刀片模板中。
这些是模型
广告属于用户。
class Advert extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
}
用户有很多广告。
class User extends Authenticatable
{
public function advert(){
return $this->hasMany('App\Advert);
}
}
在广告显示页面上,我希望在其旁边打印出用户名和详细信息。目前,我只能访问在DB中的广告列中存储为attirbute的ID。如何使用此关联来访问用户数据。
这是节目控制器
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}}
答案 0 :(得分:1)
您正在使用传递到$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,以便更好地了解雄辩如何与人际关系一起工作。