Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ symfony ] Klucze obce - blad przy budowaniu modelu
Forum PHP.pl > Forum > PHP > Frameworki
basu
Witam,
PRobuje utworzyc tabele z powiazaniem wiele do wielu.
Mam problem w czasie tworzenia modelu komenda ' symfony propel-build-model'. Po utworzeniu tabeli 'gallery_author' dostaje blad:

  1. <?php
  2. propel > om-template:
  3. [propel-om] Target database type: mysql
  4. [propel-om] Target package: lib.model
  5. [propel-om] Using template path: /usr/share/php/symfony/vendor/propel-generator/templates
  6. [propel-om] Output directory: /www/symfony/company
  7. [propel-om] Processing: schema.xml
  8. Execution of target "om-template" failed for the following reason: /usr/share/php/symfony/vendor/propel-generator/build-propel.xml:470:1: ERROR!! Attempt to set foreign key to nonexistent column, id, in table, author!
  9. [phingcall] /usr/share/php/symfony/vendor/propel-generator/build-propel.xml:470:1: ERROR!! Attempt to set foreign key to nonexistent column, id, in table, author!
  10. ?>


Plik schema.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  <database name="propel" noXsd="true" defaultIdMethod="none" package="lib.model">
  3.  <table name="author">
  4.  <column name="author_id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
  5.  <column name="author_firstname" type="varchar" size="30" required="true" />
  6.  <column name="author_lastname" type="varchar" size="30" required="true" />
  7.  <column name="author_telephone" type="varchar" size="15" />
  8.  <column name="author_email" type="varchar" size="30" />
  9.  <column name="author_status" type="boolean" required="true" default="1" />
  10.  <column name="updated_at" type="timestamp" />
  11.  <column name="created_at" type="timestamp" />
  12.  </table>
  13.  
  14.  <table name="gallery">
  15.  <column name="gallery_id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
  16.  <column name="gallery_name" type="varchar" size="100" required="true" />
  17.  <column name="gallery_desc" type="varchar" size="255" />
  18.  <column name="gallery_img" type="varchar" size="50" />
  19.  <column name="gallery_status" type="boolean" required="true" default="1" />
  20.  <column name="updated_at" type="timestamp" />
  21.  <column name="created_at" type="timestamp" />
  22.  </table>
  23.  
  24.  <table name="gallery_author">
  25.  <column name="gallery_author_id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
  26.  <column name="author_id" type="integer" />
  27.  <foreign-key foreignTable="author">
  28.  <reference local="author_id" foreign="id"/>
  29.  </foreign-key>
  30.  <column name="gallery_id" type="integer" />
  31.  <foreign-key foreignTable="gallery">
  32.  <reference local="gallery_id" foreign="id"/>
  33.  </foreign-key>
  34.  </table>
  35. </database>
mike
1. Ustawiasz w tabeli gallery_author klucz obcy author_id i wskazujesz, że będzie referował do pola id w tabeli author. A masz takie pole w tabeli author? tongue.gif
2. Ustawiasz w tabeli gallery_author klucz obcy gallery_id i wskazujesz, że będzie referował do pola id w tabeli gallery. A masz takie pole w tabeli gallery? tongue.gif


Popraw tytuł posta bo to nie ma żadnego związku z symfony.
basu
dzieki dziala smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.