Propel / symfony:只是尝试构建和加载

时间:2010-11-04 21:10:24

标签: symfony1 propel

我刚刚创建了一个新项目,这个模型和下面的灯具:

 culture:
     id: ~
     code:           { type: CHAR, size: 6, default: 'it', required: true }
     text:           { type: VARCHAR, size: 50, default: 'italiano',
required: true }
     folder_prod:    { type: VARCHAR, size: 50, default: 'italian',
required: true }

   sediOK:
     id:                      ~
     culture_id:              { type: integer, required: true,
foreignTable: culture, foreignReference: id }
     nations_id:              { type: integer, required: true,
foreignTable: nations, foreignReference: id }
     paese_indirizzo:         { type: varchar(32), required: true }
     ufficio:                 { type: varchar(64), required: true}
     indirizzo:               { type: longvarchar, required: true }

culture:
   italiano:    {code: "it", text: "italiano", folder_prod: "italian" }
   frencese:    {code: "fr", text: "francese", folder_prod: "francoise" }
   inglese:     {code: "en", text: "inglese", folder_prod: "english" }

sediOK:
   sede_roma_1_italiano:  { culture_id: 1, nations_id: 105,
paese_indirizzo: Italia, ufficio: "Ufficio 1:", indirizzo:
"XXXXX" }
   sede_roma_1_francese:  { culture_id: 2, nations_id: 105,
paese_indirizzo: Italia, ufficio: "Rome Office 1:", indirizzo:
"XXXX" }
   sede_roma_1_spagnolo:  { culture_id: 4, nations_id: 105,
paese_indirizzo: Italia, ufficio: "Oficina 1", indirizzo:
"xxxx" }

当我propel:build-all-load时,它说:

  

“文化”课程中的对象“1”是   未在您的数据文件中定义。

所以它不是插入文化设备,但我不知道为什么......如果我 删除沉淀模型和夹具,然后build-all-load 文化装置插好了。

有什么想法吗?

哈维

1 个答案:

答案 0 :(得分:3)

culture_id: 1culture_id: 2culture_id: 4的引用未在上述灯具中定义 - 您需要设置sediOK灯具以通过其标识符引用文化,不是他们在数据库中的ID。

因此,对于您的示例,“内部”夹具ID是italiano,frencese和inglese。将您的行culture_id: 1culture_id: 2culture_id: 4分别更改为culture_id: italianoculture_id: frenceseculture_id: inglese

Read the book了解有关此语法的更多详细信息。