关于laravel模型关系的条件

时间:2016-08-10 10:25:14

标签: php laravel laravel-5.2

我有两个型号。即PostsTags

发布模型

public function tags()
{
    return $this->belongsToMany('App\Models\Tag', 'tbl_post_tags', 'in_post_id', 'in_tag_id');
}

标记模型

public function posts()
{
    return $this->belongsToMany('App\Models\Post', 'tbl_post_tags', 'in_tag_id', 'in_post_id');
}

我想抓取那些有php代码的帖子。

这是我迄今为止所做的。

搜索控制器

Post::with(['tags'])->skip(0)->take(5)->get();

我从表中获得前五个帖子。但是这些列表中有一个帖子没有PHP标记。因此,根据我的要求,我必须从表中获得PHP标记的下一篇文章。

我在laravel的官方网站上找不到任何文件。如果有人知道答案,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

假设您按名称搜索标签,这里是代码。

Post::with(['tags'])->whereHas('tags', function($query){
    $query->where("name", 'PHP');
})->skip(0)->take(5)->get();

答案 1 :(得分:1)

Post::whereHas(['tags' => function($q) use($name){
  $q->where('name', $name); // $name = 'PHP'
}])->take(5)->get();