我有以下幾點:Laravel:如何在belongsToMany關係上編寫連接計數查詢?
- 用戶,角色,用ROLE_USER透視表和belongsToMany 關係
- 用戶,位置,與location_user透視表和belongsToMany關係
有2個角色爲用戶:店主&園丁
位置有一個'gardeners_max'字段
在模型中的位置:
protected $appends = ['is_full'];
public function getIsFullAttribute()
{
return $this->attributes['name'] = $this->remainingGardeners() <= 0;
}
public function countGardeners()
{
return $this->gardeners()->count();
}
public function remainingGardeners()
{
return $this->gardeners_max - $this->countGardeners();
}
現在,這樣做:
Location::all();
我得到的是:
[
{
name: 'LocationA',
gardeners_max: 3,
owners: [...],
garderners: [...]
...
is_full: false
}
]
這是很酷。但是......不可能對附加屬性執行WHERE子句。
Location::where('is_full',true)->get() // Unknown column 'is_full' in 'where clause'
所以我想編寫一個連接查詢,所以我可以做is_full
WHERE子句和我簡直找不到路。任何幫助將不勝感激!
重要:
我知道濾波器()方法得到的結果,但我需要在這裏做一個scopeQuery
感謝狀,但正如我剛纔編輯我真正需要做的(和理解)如何編寫連接查詢 – sebap