如何查詢與Eloquent,所有用戶沒有某種類型的證書?如何將其轉換爲一個很好的Eloquent查詢
Laravel 4
我有2個表:
users table:
->id
->name
certificats table:
->id
->user_id
->certificate_type
我真的現在有了這個掙扎了幾個小時。我試過的最後一件事是:
$users = User::with(array('certificate' => function($query)
{
$query->where('type','!=','SL');
}))->get();
這給了我所有的用戶,但我試圖讓所有的用戶沒有證書類型「SL」。
- 編輯: Spencer7593的原始查詢下面的作品。但我沒有得到雄辯的查詢工作。
SELECT u.*
FROM users u
LEFT
JOIN certificates c
ON c.user_id = u.id
AND c.type = 'SL'
WHERE c.user_id IS NULL
的關係:
public function certificate(){
return $this->hasMany('Certificate');
}
public function certificate(){
return $this->belongsTo('User');
}
是否有幫助:$ query-> where('certificate_type','!=','SL'); – Maximus2012
不,它不:(我也試過'certificate.type' – mauricehofman
'type'指證書表中的列,所以應該是正確的。你不在其他地方重新定義'$ users'變量這可能會覆蓋這個?你在'用戶'模型中有適當的功能來將它與證書相關嗎? – user1669496