我有两个型号。即Posts
和Tags
。
发布模型
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的官方网站上找不到任何文件。如果有人知道答案,我们将不胜感激。
答案 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();