Как запросить у Eloquent все пользователи без определенного типа сертификата?Как преобразовать это в хороший ответный запрос
Laravel 4
У меня есть 2 таблицы:
users table:
->id
->name
certificats table:
->id
->user_id
->certificate_type
I`m в настоящее время борются с этим в течение нескольких часов. Последнее, что я попытался было:
$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-> где ('certificate_type', '! =', 'SL'); – Maximus2012
Нет, это не так :(, я также попытался «certificate.type». – mauricehofman
«type» относится к столбцу в таблице сертификатов, поэтому это должно быть правильно. Вы не переопределяете переменную '$ users' где-либо еще это может быть перезаписью этого? И у вас есть соответствующая функция в вашей модели User для связывания ее с сертификатами? – user1669496