Mysql 如何使用ORM在Symfony中构建自引用表

Mysql 如何使用ORM在Symfony中构建自引用表,mysql,symfony1,propel,self-reference,Mysql,Symfony1,Propel,Self Reference,我在尝试使用推进ORM从symfony项目中的现有数据库构建模型时出错 错误是: build-spreep.xml:474:20:由外键a_table_在_my_schema_FK_1上表示的1:1关系在两个方向上定义;PROPEL目前不支持这一点(如果您必须同时具有外键约束,请考虑使用自定义SQL文件添加此约束)。 schema.yml文件非常广泛,但导致错误的表(第一个未正确创建)的描述如下: self_referenced_table: _attributes: { phpName: Se

我在尝试使用推进ORM从symfony项目中的现有数据库构建模型时出错

错误是:

build-spreep.xml:474:20:由外键a_table_在_my_schema_FK_1上表示的1:1关系在两个方向上定义;PROPEL目前不支持这一点(如果您必须同时具有外键约束,请考虑使用自定义SQL文件添加此约束)。 schema.yml文件非常广泛,但导致错误的表(第一个未正确创建)的描述如下:

self_referenced_table:
_attributes: { phpName: SelfReferencedTable }
[...]
JERARQUIC_CODE: { phpName: JerarquicCode, type: INTEGER, size: '8', required: false, foreignTable: self_referenced_table, foreignReference: JERARQUIC_CODE, onDelete: RESTRICT, onUpdate: RESTRICT }
[...]
我认为这个错误是因为自引用表

我需要在许多元素之间实现Jerraquic关系,所以这个实现是一个很好的方法。但是在建筑上给我造成了这个问题

你能给我一些线索吗?有人犯过这个错误吗?你会怎么做


谢谢!!:D

已解决:正如@Colin Fine所说,这不是一个自引用表错误。错误发生在源数据库上。我从mysql上的现有数据库生成了schema.yml。错误就在那里:引用的目标属性不是表的标识符,而是引用属性本身。因此,生成的schema.yml包含错误的定义。我想我解释得不够清楚:

自参考的表格是:

\u属性:{phpName:SelfReferencedTable}
[…]
Jerraquic_代码:{phpName:JerraquicCode,类型:整数,大小:'8',必需:false,foreignTable:self_引用的_表,foreignReference:Jerraquic_代码,onDelete:RESTRICT,onUpdate:RESTRICT}
[…]

自参考表格应为:

\u属性:{phpName:SelfReferencedTable}
[…]
JerraQuic_代码:{phpName:JerraQuicCode,类型:整数,大小:'8',必需:false,foreignTable:self_referenced_table,foreignReference:table_代码,onDelete:RESTRICT,onUpdate:RESTRICT}

[…]

我不认为这是因为自引用表本身,而是因为表中的自引用列。这对我来说似乎没有意义,因为如果它是单值的,那么它可以引用的唯一记录就是它本身。你确定这就是你的意思吗?我一点也不确定。但只有自引用表在构建时崩溃。如果我将它们从schema.yml中删除,大楼就会正常运行