我需要获取用户所属的所有模型以及所有模型where private = 0
(来自所有其他用户)
我已经尝试了两个合并的单独查询 - 但是使用这种方法有重复的项目。
此方法也不起作用:
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("private", "=", 0);
答案 0 :(得分:2)
假设'private'字段在collect_members表上,然后使用'private'设置一个pivot字段,然后通过pivot搜索
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWherePivot('private','0');
或者你可以
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("collection_members.private", "=", 0);
两者都应该工作第一个是表格不可知(即它链接到模型)但第二个会更快
答案 1 :(得分:0)
取消模型上的orWhere()
并急切加载它。
$member = Member::where('id', '1')->has(array('collections' => function($q)
{
$q->where('private', '0');
}))->get()->first();
foreach($member->collections as $collection) {
echo $collection->name;
}