2010-11-04 13 views
1

que je viens de créer un nouveau projet et ces modèles et les accessoires ci-dessous:Propel/symfony: juste essayer de construire et la charge

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" } 

Quand je fais propel:build-all-load il dit:

L'objet "1" de la classe "Culture" est n'est pas défini dans votre fichier de données.

Il est donc pas l'insertion des appareils de culture, mais je ne sais pas pourquoi ... Si je supprimer le modèle sediOK et accessoires, puis faire build-all-load les appareils de culture sont insérés ok.

Une idée?

Javi

Répondre

3

Les références à culture_id: 1, culture_id: 2 et culture_id: 4 ne sont pas définis dans les appareils ci-dessus - vous devez définir les sediOK accessoires pour référencer les cultures par leurs identifiants, pas leurs papiers d'identité dans la base de données. Donc, pour vous les exemples, les ID d'appareils «internes» sont italiano, frencese et anglais. Changez vos lignes culture_id: 1, culture_id: 2 et culture_id: 4 respectivement culture_id: italiano, culture_id: frencese et culture_id: inglese respectivement.

Read the book pour plus de détails sur cette syntaxe.