我需要獲取該用戶所屬的所有車型,另外所有模型where private = 0
(所有其他用戶)有附加條件
我已經有兩個試了一下機鋒belongsToMany關係合併單獨查詢 - 但與此方法有重複的項目。
而且,這種方法行不通:
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("private", "=", 0);
我需要獲取該用戶所屬的所有車型,另外所有模型where private = 0
(所有其他用戶)有附加條件
我已經有兩個試了一下機鋒belongsToMany關係合併單獨查詢 - 但與此方法有重複的項目。
而且,這種方法行不通:
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("private", "=", 0);
假設「私人」領域是你的collection_members表,然後使用「私有」,然後通過轉動搜索設置樞軸場
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWherePivot('private','0');
,或者你可以
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("collection_members.private", "=", 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;
}
'方法名稱必須是字符串'(has()以第一個參數作爲數組)。此外,我想這將返回所有非私人模型屬於給定的用戶,但我想要所有用戶的所有非私人粘貼。 – ManiacTwister
您的解決方案將defi只要你想檢查相關模型表格上的私人字段,但你可能需要使用'relatedTableName.private','=',0 –