次の3つのテーブルがあります。
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
今の問題は、いくつかの制約を付けてクエリを実行したいということです。これらの制約の 1 つがid
ですA
。私は次のことを試しました:
C::with(array('B.A' => function ($query)
{
$query->where('id', '=', $constraint);
}))->get();
しかし、テーブル内のデータを取得するためにクエリを実行している場合を除いて、Eloquent はC
制約を考慮に入れることさえせずにすべての行を取得するようA
です。この問題を回避するにはどうすればよいですか? C
に別のフィールド、つまりを追加し、そのフィールドA_id
と照合する必要があり$constraint
ますか?