2015-06-19 78 views
1

所以我有兩個表,一個叫members和一個叫memberships計數兩行範圍和關係(Laravel)

我的目標是誰算有一定的會員資格成員人數。我設置了外鍵,關係工作正常,以至於我需要做計數。

我的範圍(在Member模型)

public function scopeActive($query) { 
    return $query->where('membership_ended_at', Null); 
} 

我的關係是(在Member模型)

public function membership() { 
    return $this->belongsTo('App\Membership'); 
} 

此查詢工作正常了,我看有多少成員誰是active()membership_id of 6.

$members_student = Membership::find(6)->members()->active()->count(); 

我d不知道這是否應該起作用,但它確實有效。現在,我的問題是,我們有一個正規學生會員和留學生會員與14

我以爲ID也許這會的工作,但我很快就意識到我錯了

$members_student = Membership::find([6,14])->members()->active()->count(); 

我知道我可以調用兩個查詢,並將兩者加在一起,但我正在尋找更優雅的解決方案。一些只需要一個查詢的東西,並且只會查詢一半。

希望別人以前

回答

1

由於有人laravel.io聊天我設法弄清楚這一個看到了這一點。張貼在這裏,以防其他人也在尋找答案。

解決辦法:

$members_student = Member::whereIn('membership_id', [6,14])->active()->count();