Laravel Eloquent — выборка данных, только если есть совпадение с данными один ко многим

У меня есть отношение один ко многим.

У Клиента может быть много Студентов, у студентов может быть статус Полный или Слева.

Я хочу получить Клиента, только если у него есть ПОЛНЫЕ Студенты.

Я думал, что Eager Loading сделает свое дело, но он все еще возвращает клиентов, если у них нет студентов Full:

$customers = Customer::with(array('students' => function($query)
{
$query->where('STATUS', '=', 'FULL');
}))->get();

Охотился на Google, но ничего не смог найти, не совсем понимая, как сформулировать этот вопрос.

Спасибо за вашу помощь

1

Решение

Вы просто выбираете, какие отношения нужно отозвать с этим запросом. То, что вы хотите, это выбрать клиентов где отношение имеет какое-то свойство

Пытаться:

$customers = Customer::whereHas('students', function($q) {
$q->where('STATUS', '=', 'FULL');
})->get();

Дальнейшее чтение:

http://laravel.com/docs/4.2/eloquent#querying-relations

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]