php - Laravel 结合两个表帖子 + 标签

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

它有效,但我认为有比这更好的方法。

最佳答案

用户模型

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

关于php - Laravel 结合两个表帖子 + 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29732172/

相关文章:

php - cookie 是否在不同的浏览器中持久存在?

php - 如何使用 PhpStorm 将选择包含在引号中?

php - Zend : How to get view in Bootstrap. php?

php - laravel 如何验证数组索引和值

css - 从数据库中检索十六进制颜色以用作网站的原色

php - 如何计算多维物体? (php)

mysql - 获取每组的计数,但在每组中的 N 个结果行后停止计数

java - Hibernate:如何映射一张表的两列

mysql - 基于 lower_case_table_names 系统变量的 information_schema.routines 上的 SELECT 行为

php - Laravel Eloquent - 访问二级模型关系