で動的な値に等しいクエリ条件を作成する方法:フィールドを比較すると、私はこのようなクエリを作成しようとしているCakePHPの3
$spreadsheet = $this->Spreadsheets->get($id, [
'contain' => [
'SpreadsheetTypes.CentersTypes' => function ($q) {
return $q->matching('Centers', function ($q) {
return $q->where(['Centers.id' => 5]);
})->contain(['Items']);
}
]
]);
の$ id値がパラメータで渡されます。しかし、私はこのクエリで取得しますcenter_id値で「Centers.id」を比較する必要があるため
return $q->where(['Centers.id' => 5])
を変更する必要があります。つまり、スプレッドシートにはcenter_idフィールドがあるので、それを比較する必要があります。
それは1が正確にyou'areを求めて何を理解したら、その質問に答えることは比較的簡単だが、それはかどうかを言うのは難しいですあなたのアソシエーションの種類やそのクエリの意図が不明なため、実際に動作します。表示されているクエリでは、そのような比較は、すべての包含が1:1またはn:1の関連である場合にのみ機能します。 – ndm
アソシエーションの詳細に加えて、なぜコンテナを使用しているのか、つまり実際にそのデータを格納したいのか、これらのアソシエーションだけをフィルタリングするのかについて言えば助けになります。 – ndm