私は中規模の Symfony2 プロジェクトに取り組んでいます。いくつかのドクトリンエンティティを使用しているときに、次の「エラー」に固執しました。
3 つのフィールドを持つエンティティがあります。
<entity name="xxx\yyyBundle\Entity\ABTexte" table="ABTexte">
<id name="Nr" type="integer" />
<field name="OID" type="integer" />
<field name="Text" type="string" />
<many-to-one target-entity="xxx\yyyBundle\Entity\ABKopf" field="ABKopf" inversed-by="ABTexte">
<join-column name="OID" referenced-column-name="OID" on-delete="CASCADE" />
</many-to-one>
</entity>
$repo->findBy() を使用して 1 つ以上のエンティティをロードした後、間違ったデータ型のエンティティを受け取りました。私の結果は次のとおりです。
$ABKopf->Nr (int)
$ABKopf->Text (string)
$ABKopf->OID (string) <===== !!!!!!!!!
アプリケーションがこの値を整数として取得することは非常に重要です。この動作の原因は何ですか?
PS: すべての値は、正しいデータ型のデータで埋められます。例: OID = 999000
整数列を外部キーとして使用すると(多対1の関係...)、教義は常にそれを文字列として返すことを確認しました
ABKopf での関係:
<entity name="xxx\yyyBundle\Entity\ABKopf" table="ABKopf">
<id name="OID" column="OID" type="integer" />
<field name="ABNr" column="ABNr" type="integer" />
<!-- ... -->
<one-to-many target-entity="xxx\yyyBundle\Entity\ABTexte" field="ABTexte" mapped-by="ABKopf" />
</entity>
ABTexte-エンティティ: https://gist.github.com/715f3881a57cdd8a7d23