在laravel中搜索基于帖子的标签

时间:2017-09-06 17:44:02

标签: laravel eloquent

我有两个表,post和post_tag。这两个表的结构如下:

--Post--
id|Content|user_id

--Post_tag
id|post_id|tag( type = var char / tag name)

我使用这样的查询:

post::whereHas('post_tag', function ($query) use ($tags) {
                    $query->where('tag', $tags);
                });

我想得到所有基于帖子的标签(例如:标签php及其返回所有帖子都有标签php)但它返回错误undefined whereHas方法,是否应该读取任何引用?提前致谢

1 个答案:

答案 0 :(得分:0)

为模型添加关系

//Post

public function tags()
{
  return $this->hasMany(Post_tag::class);
}


// Post_tag

public function posts()
{
  return $this->belongsTo(Post::class);
}

然后您可以根据

这样的标记获取所有帖子

$posts = Post_tag::with('posts')->where('tag','php')->get();