「論理的な」1:1の関係を持つ2つのエンティティがありますが、構成されていません(互いに関連していることを知りません)。
この状況に応じて古いコードがたくさんあるため、この関係を構成することはできません (詳細については以下を参照してください)。
今、私は句を含む単純なSELECT
クエリを使用して、この関係を手動で解決しようとしています:LEFT JOIN
SELECT E1 as my_cool_entity_1, E2 as my_cool_entity_2
FROM Namespace\Of\Entity1 E1
LEFT JOIN Namespace\Of\Entity2 E2
WITH E2.someColumn = E1.someOtherColumn
私の場合、一致する行が 1 つだけありE1
、結合に一致する行が 1 つだけありE2
ます。どういうわけか、私はDoctrineを以前にそのように使用したことがありますが、どこでどのように使用したか思い出せません。期待される結果は、次のような配列です。
[0 => [
"my_cool_entity_1" => (Instance of E1),
"my_cool_entity_2" => (Instance of E2)
]]
代わりに、配列は次のようになります。
[0 => [
"my_cool_entity_1" => (Instance of E1)
],
1 => [
"my_cool_entity_2" => (Instance of E2)
]]
Doctrine が期待どおりに配列を水和させるにはどうすればよいですか? 前もって感謝します!
注: この 2 つのエンティティ間の関係を定義できないと書きました。これは、リレーションが定義されている場合、Doctrine では E1 を保存するときに to のインスタンスを割り当てる必要があるためです。ただし、私の古いコードでは、関連するIDのみを割り当てています。したがって、Doctrine はまったく無視し、制約エラーを引き起こします。E2
E1
E2