如何在symfony1.4中的同一个表中进行一对多关系

时间:2015-04-26 14:28:07

标签: php symfony-1.4

我想在同一个表中创建一对多关系。我有一个表类别,我试图为它创建模式。我在同一个表中有类别和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'表格中不存在。

1 个答案:

答案 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) }

阅读文档,看看它是怎么回事。