Propel / Symfony: просто пытаюсь собрать и загрузить - PullRequest
1 голос
/ 05 ноября 2010

Я только что создал новый проект, и он моделирует и приспособления ниже:

 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"из класса "Culture" не определен в вашем файле данных.

Так что он не вставляет приспособления культуры, но я не знаю почему ... Если я удаляю модель и приборы sediOK, а затем делаю build-all-load культурные приспособления вставлены нормально.

Есть идеи?

Хави

1 Ответ

3 голосов
/ 05 ноября 2010

Ссылки на culture_id: 1, culture_id: 2 и culture_id: 4 не определены в вышеуказанных приборах - вам необходимо установить приспособления sediOK для ссылки на культуры по их идентификаторам, а не по их идентификаторам в базе данных.

Итак, для ваших примеров, «внутренними» идентификаторами приборов являются italiano, frencese и inglese. Измените ваши строки culture_id: 1, culture_id: 2 и culture_id: 4 на culture_id: italiano, culture_id: frencese и culture_id: inglese соответственно.

Прочтите книгу , чтобы узнать больше об этом синтаксисе.

...