2012-01-15 1 views
0

で定義されていません。symfonyの1.4はPropel:私はこのスキーマを見ることができます定義されますが、外部キーは、テーブル

orders: 
    _attributes: { phpName: Orders, default_table_charset: utf8, default_table_collate: utf8_general_ci } 
    id:    ~ 
    category_id: { type: integer, size: '10', required: true, defaultvalue: '0', foreigntable: categories, foreignreference: id } 
    whatisthis:  { type: longvarchar, required: false } 

    categories: 
    _attributes: { phpName: Categories } 
    id:   ~ 
    name:  { type: varchar, size: '255', required: true, defaultvalue: '' } 
    _uniques: { index_name: [name] } 

私は、外部キーが私のテーブルで定義されていないことを考え出しました。私はinnoDBを使用しているので、PKが可能です。 Propelは外部キーを設定していませんか?

答えて

3

""と "foreignreference"はラクダにしてください。 category_id 'のサイズは、カテゴリのIDのサイズと等しくなければなりません。

orders: 
    _attributes: { phpName: Orders, default_table_charset: utf8, default_table_collate: utf8_general_ci } 
    id:    ~ 
    category_id: { type: integer, size: '10', required: true, defaultvalue: '0', foreignTable: categories, foreignreRerence: id } 
    whatisthis:  { type: longvarchar, required: false } 

    categories: 
    _attributes: { phpName: Categories } 
    id:   ~ 
    name:  { type: varchar, size: '255', required: true, defaultvalue: '' } 
    _uniques: { index_name: [name] } 
1

使用しているsymfonyとpropelのバージョンはどれですか? Propelの1.1を使用している

想定は、ここであなたは1対多の関係の一例です:


    musician: 
    _attributes: { phpName: Musician } 
    id: { phpName: Id, type: INTEGER, size: '9', primaryKey: true, autoIncrement: true, required: true } 
    #other fields 
    musician_album: 
    _attributes: { phpName: MusicianAlbum } 
    id: { phpName: Id, type: INTEGER, size: '9', primaryKey: true, autoIncrement: true, required: true } 
    musician_id: { phpName: MusicianId, type: INTEGER, size: '9', required: true, foreignTable: musician, foreignReference: id, onDelete: CASCADE, onUpdate: CASCADE } 
    #other fields 
    _indexes: { musician_id: [musician_id] } 

正直に言うと、私は手動でデータベーステーブル(設定、インデックス、外部キーなどを作成することを好みますsymfony(symfony 1.xを使用していると仮定します)タスクを使用してスキーマを作成します。

symfony propel:build-schema 
関連する問題