我正在开发一个中型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-&gt; findBy()加载一个或多个实体后,我收到一个数据类型错误的实体。我的结果是:
$ABKopf->Nr (int)
$ABKopf->Text (string)
$ABKopf->OID (string) <===== !!!!!!!!!
我的应用程序将此值作为整数获取非常重要。你有什么想法导致这种行为吗?
PS:所有值都填充了正确数据类型的数据。即G。 OID = 999000
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-Entity:https://gist.github.com/715f3881a57cdd8a7d23
答案 0 :(得分:0)
根据您的评论
PS:起初我没有为列OID定义数据类型,所以它是一个 varchar(255)/ string。后来我将数据类型更改为整数,然后 used doctrine:generate:schema命令用来更新中的列 数据库...
我将向您解释生成实体的整个“学说过程”。
首先,您编写一个带有一些注释的PHP类或一个yml,xml,ecc,它告诉doctrine如何创建实体,相互链接等等。
第二步是以自动方式doctrine:generate:entities
第三步是,当您想要更改有关架构的内容时,请使用以下命令doctrine:schema:update --force
我认为doctrine:generate:schema
没有做你期望它做的事情。
尝试使用我在第三步中编写的命令