[英]Where condition on laravel model relationship
我有两个模型。 即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的官方网站上找不到任何文档。 如果有人知道答案,将不胜感激。
假设您按名称搜索标签,则代码如下。
Post::with(['tags'])->whereHas('tags', function($query){
$query->where("name", 'PHP');
})->skip(0)->take(5)->get();
Post::whereHas(['tags' => function($q) use($name){
$q->where('name', $name); // $name = 'PHP'
}])->take(5)->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.