@akdes

Как получить модель, которая имеет модель у которой foo like bar?

Привет.
Нужно найти device, у которого есть attribute, который имеет foo like "bar"
Пример в SQL:
device n:m attribute

select device.id from device where device.id in 
   (select device_id from device_attribute where attribute_id in  
      (select attribute.id from attribute where attribute.foo like "bar")
   )


Подскажите как сделать это по умному? я мог бы сначала искать attribute, а потом уже получить device.

$attr = Attribute::where('foo', 'like', 'bar')->first();
$device = $attr->device()->first();

Но это переворачивает логику.
Заранее спасибо
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@imhuman
$devices = Device::whereHas('attributes', function ($query) {
    $query->where('foo', 'like', 'bar');
})->get();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы