我想在同一个表中创建一对多关系。我有一个表类别,我试图为它创建模式。我在同一个表中有类别和parent_id的id。我想映射它们。我尝试了以下代码:
DemoCategory:
actAs: { Timestampable: ~ }
columns:
CategoryName : { type: string(255) }
CategoryImage : { type: string(255) }
relations:
DemoCategories:
class: DemoCategory
refClass: DemoCategory
local: ParentCategory
foreign: id
foreignAlias: DemoCategory
当php symfony doctrine:insert-sql时会出错
语法错误或访问冲突:1072键列' ParentCategory'表格中不存在。
答案 0 :(得分:3)
您看到的错误来自于您的DemoCategories关系原则要求本地是 id字段而不是模型对象。
现在,您要实现的目标(在同一个表中使用id和parent_id)是一个嵌套集。并且doctrine通过NestedSet行为允许这种模型。请参阅此处的学说文档:doctrine Hierarchical data。
为您的模型试试这个:
DemoCategory:
actAs:
Timestampable : ~
NestedSet: ~
columns:
CategoryName : { type: string(255) }
CategoryImage : { type: string(255) }
阅读文档,看看它是怎么回事。