У меня следующие три таблицы:
A
-------------
| id | name |
-------------
B
--------------------
| id | A_id | name |
--------------------
C
--------------------
| id | B_id | name |
--------------------
Таким образом, данные в таблице C относятся к данным в таблице B, которые относятся к данным в таблице A. Теперь я хочу запросить C, а также получить данные из B и A, а следующий код очень трюк.
C::with('B.A')->get();
Теперь проблема заключается в том, что я хочу запросить C с некоторыми ограничениями. Одним из этих ограничений является id of A. Я пробовал следующее:
C::with(array('B.A' => function ($query)
{
$query->where('id', '=', $constraint);
}))->get();
Но кажется, что Eloquent будет извлекать все строки в C, даже не принимая во внимание ограничение, кроме случаев, когда он выполняет запрос для извлечения данных в таблице A. Как мне обойти эту проблему? Мне нужно добавить другое поле в C, то есть A_id, и сопоставить $constraint с этим полем?