orm中多对多查询问题
表一文章表article字段(id,title,creatTime)
表二文章类型表type(id,name,creatTime)
中间表t_type(id,t_type_id,article_id);t_type字段指向type表的id,article_id指向article表的id
问题
我现在想查询制定文章类型的文章集合该怎么写
我的这些写法没有筛选出指定文章类型的文章集合,而是全部文章,只是关联字段rel_type为空,
我就是想得到rel_type为空的剔除掉,但是想一步到位,而不是将得到的结果再遍历一次。
请大神,请好心人,这个有解吗?
表二文章类型表type(id,name,creatTime)
中间表t_type(id,t_type_id,article_id);t_type字段指向type表的id,article_id指向article表的id
问题
我现在想查询制定文章类型的文章集合该怎么写
$result=$this
->searchWhere($parm)
->whereIn("id",array(17680,17679,17677,17676,17675,17674,17673,17672,17671,17670))
->with(array('rel_type'=>function($query){
//$query->where('t_type.name','=','报告');
}))
//->whereIn("id",array(17680,17679,17677,17676,17675,17674,17673,17672,17671,17670))
->where('t_type.name','=','报告')
//->searchWhere($parm)
->get();
我的这些写法没有筛选出指定文章类型的文章集合,而是全部文章,只是关联字段rel_type为空,
我就是想得到rel_type为空的剔除掉,但是想一步到位,而不是将得到的结果再遍历一次。
请大神,请好心人,这个有解吗?
1 个回复
嗯_哼
赞同来自:
$instance=$this->searchWhere($parm)
->whereHas('rel_type',function($q){
$q->where('name','=','政府文件');
})
->whereHas('rel_industry',function($q){
$q->where('name','=','房地产');
})
->get();
原来文档中写的很清楚,大意了……