Laravel结合了两个表格帖子+标签

时间:2015-04-19 15:57:32

标签: php mysql laravel eloquent

我有两个表用于链接,第二个表用于标记。

当用户创建新标记时,它将写入标记表新行。 现在我想要做的是获得带标签的所有用户链接。我这样做了:

$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();
  }

它正在运作,但我认为有更好的方法来做到这一点。

1 个答案:

答案 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()