我有以下schema.yml文件:
Page:
actAs:
I18n:
fields: [name,html,urlShortDesc]
columns:
name: string
gender:
type: enum
values: [html, photoGallery]
default: html
html: string
urlShortDesc: string
section_id:
type: integer
notnull: true
relations:
Section:
foreignAlias: Pages
SubPage:
class: Page
local: subpage
foreign: id
type: one
但是,当我执行build-all-reload
命令时,会显示以下错误消息:
SQLSTATE [42000]:语法错误或访问冲突:1072表中不存在键列“子页”
我正在尝试实现一个自我关系类。
答案 0 :(得分:2)
我想你想拥有你列出的内容:
SubPage:
class: Page
local: subpage
foreign: id
type: one
但是你需要一个id列(foreign:id)作为Page表的主键和一个名为'subpage'的列,它包含对子节点的引用(local:subpage)。因此,您可能包含id =“100”的页面,其中包含名为subpage的字段,其中包含id =“200”,而“200”是不同页面的实际键(id)。
更新:从评论到修改原始模式文件:
Page:
actAs:
I18n:
fields: [name,html,urlShortDesc]
columns:
name: string
gender:
type: enum
values: [html, photoGallery]
default: html
html: string
urlShortDesc: string
section_id:
type: integer
notnull: true
id:
type: integer
notnull: true
subpage:
type: integer
notnull: false
relations:
Section:
foreignAlias: Pages
SubPage:
class: Page
local: subpage
foreign: id
type: one
请注意,我对您的架构做了一些严肃的假设,包括: