코드를 실행하면 Doctrine은 값을 변경하지 않았더라도 데이터베이스의 값을 0으로 변경합니다. 이 필드에는 Setter-Method조차 없습니다.Doctrine이 아무 이유없이 업데이트합니다.
필드는 ID의 일부입니다.
어떻게 Doctrine이 값을 변경시킬 수 있습니까?
편집
필드는 엔티티 PageNamespaceTranslation, language_id
는 교리에 의해 수정됩니다 분야에 속한다.
XML이 아닌 주석을 사용합니다.
<entity name="exodus\domain\meta\pages\namespaces\PageNamespaceTranslation" table="page_namespace_translation">
<id name="translated" association-key="true" />
<id name="language_id" type="integer" column="lang_id" />
<many-to-one target-entity="PageNamespace" field="translated" inversed-by="translations">
<join-column name="namespace_id" referenced-column-name="namespace_id" />
</many-to-one>
UPDATE
내가 문제를 현지화 한 생각 : 나는 개체도 필드 language_id
라고 한 InformationObjectAliasPageTranslation
라고합니다. lang_id
열은 두 번 사용됩니다. language_id
필드의 경우 및 PageNamespaceTranslation의 외래 키의 일부로 사용됩니다.
SELECT p FROM exodus\domain\meta\pages\InformationObjectAliasPageTranslation p
JOIN p.namespace ns
JOIN ns.translated nst
WHERE nst.namespaceId = :ns AND p.language_id = :langId AND p.title = :title
내가 선택에 ns
및 nst
를 추가
문제가 발생합니다.
그러나 매핑을 변경하여 lang_id
열을 한 번만 사용하므로 문제가 없습니다.
<entity name="exodus\domain\meta\pages\InformationObjectAliasPageTranslation" table="page_translation">
<id name="translated" association-key="true" />
<id name="language_id" type="integer" column="lang_id" />
<many-to-one target-entity="InformationObjectAliasPage" field="translated" inversed-by="translations">
<join-column name="page_id" referenced-column-name="page_id" />
</many-to-one>
<many-to-one target-entity="exodus\domain\meta\pages\namespaces\PageNamespaceTranslation" field="namespace">
<join-columns>
<join-column name="namespace_id" referenced-column-name="namespace_id" />
<join-column name="lang_id" referenced-column-name="lang_id" />
</join-columns>
</many-to-one>
컬럼의 이중 사용이 효과를 일으킬 LANG_ID 수 :
의 orginal 한 형태로 InformationObjectAliasPageTranslation
의 매핑
일부 코드 (예 : 주석 등)를 표시하십시오. – Tuxes3
Doctrine 2는 부적절합니다. 리플렉션을 사용하여 데이터베이스에 직접 /에서 속성을 가져 오거나 설정합니다. 또한 D2는 생성자를 호출하지 않습니다. @ Tuxes3처럼 우리에게 약간의 코드를 보여줍니다. – Cerad
@ Tuxes3 어때? –