我有两个表用于链接,第二个表用于标记。
当用户创建新标记时,它将写入标记表新行。 现在我想要做的是获得带标签的所有用户链接。我这样做了:
$data['links'] = User::find($user->id)->links()->get();
foreach ($data['links'] as $key => $value) {
$data['links'][$key]['tags'] = DB::table('tags')
->where('user_id', $user->id)
->where('link_id', $value->id)
->get();
}
它正在运作,但我认为有更好的方法来做到这一点。
答案 0 :(得分:1)
用户模型
public function links()
{
return $this->hasMany('Link');
}
链接模型
public function user()
{
return $this->belongsTo('User');
}
public function tags()
{
return $this->hasMany('Tag');
}
标签模型
public function link()
{
return $this->belongsTo('Link');
}
所以我们准备好了......
User::with('links.tags')->get()