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
问题
我现在想查询制定文章类型的文章集合该怎么写
$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为空的剔除掉,但是想一步到位,而不是将得到的结果再遍历一次。
请大神,请好心人,这个有解吗?
已邀请:

嗯_哼

赞同来自:

我自己找到答案了
$instance=$this->searchWhere($parm)

->whereHas('rel_type',function($q){
$q->where('name','=','政府文件');
})
->whereHas('rel_industry',function($q){
$q->where('name','=','房地产');
})
->get();
原来文档中写的很清楚,大意了……

要回复问题请先登录注册