This forum is in READ-ONLY mode.
You can look around, but if you want to ask a new question, please use the new forum.
Home » support » symfony 1.3 and 1.4 » Problème d'insertion SQL avec relation sur doctrine
Problème d'insertion SQL avec relation sur doctrine [message #103022] Sat, 24 July 2010 04:48
laurentlg  is currently offline laurentlg
Messages: 2
Registered: July 2010
Location: Seoul, South Korea
Junior Member
Bonjour,

J'aurai besoin d'un coup de main de la communauté.

Je suis sur la version 1.4 de Symfony. Je débute avec ce framework.

J'ai 4 objets dans le modèle suivant :

Des "Attractions" qui ont une ou plusieurs "Category", qui font partie d'une "Area" et qui ont plusieurs "Media".

Le problème semble venir à cause de la relation "many".
J'ai une erreur lorsque que je "build" ce code.

Category:
  actAs: { Timestampable: ~ }
  columns:
    id : { type: integer, notnull: true, primary: true, autoincrement:true }
    name : { type: string(255), notnull: true }
    short_description : { type: string(140) }
  options:
    collate: utf8_unicode_ci
    charset: utf8

Attraction:
  actAs: { Timestampable: ~ }
  columns:
    id : { type: integer, notnull: true, primary: true, autoincrement:true }
    name : { type: string(140), notnull: true }
    title : { type: string(140), notnull: true }
    short_description : { type: string(140), notnull: true }
    long_description : { type: string(1024), notnull: true }
    article : { type: clob, notnull: true }
    tips : { type: string(1024) }
    website : { type: string(255) }
    address : { type: string(255) }
    tel : { type: string(20) }
    getting_here : { type: string(255) }
    latitude : { type: string(20), notnull: true }
    longitude : { type: string(20), notnull: true }
    picture : { type: string(100) }
    picture_description : { type: string(140) }
    area_id: { type: integer, notnull: true }
  relations:
    Area:       { onDelete: CASCADE, local: area_id, foreign: id, foreignAlias: Attractions }
    Categories: { class: Category, local: id, foreign: category_id, refClass: AttractionCategory }
    Medias:     { onDelete: CASCADE, type: many, class: Media, local: id, foreign: id }   
  options:
    collate: utf8_unicode_ci
    charset: utf8

AttractionCategory:
  columns:
    attraction_id:  { type: integer, primary: true }
    category_id: { type: integer, primary: true }
  relations:
    Attraction:  { onDelete: CASCADE, local: attraction_id, foreign: id }
    Category: { onDelete: CASCADE, local: category_id, foreign: id }
  options:
    collate: utf8_unicode_ci
    charset: utf8

Media:
  actAs: { Timestampable: ~ }
  columns:
    id : { type: integer, notnull: true, primary: true, autoincrement:true }
    name : { type: string(255), notnull: true }
    title : { type: string(255), notnull: true }
    short_description : { type: string(140), notnull: true }
    long_description : { type: string(1024), notnull: true }
    url : { type: string(140), notnull: true }
  relations:
    Attraction: { onDelete: CASCADE, local: id, foreign: id }
  options:
    collate: utf8_unicode_ci
    charset: utf8


L'erreur est la suivante :

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'area(id) ON DELETE CASCADE' at line 1.
Failing Query:
"ALTER TABLE attraction ADD CONSTRAINT attraction_area_id_area_id
FOREIGN KEY (area_id) REFERENCES area(id) ON DELETE CASCADE".
Failing Query:
ALTER TABLE attraction ADD CONSTRAINT attraction_area_id_area_id
FOREIGN KEY (area_id) REFERENCES area(id) ON DELETE CASCADE


Quoi qu'il en soit, les tables et insertions sont tout de même crées. Mais ce code SQL est juste selon moi, je ne comprends pas quel est le problème. Il me retourne la même erreur (1064) si je l'injecte à partir de phpMyAdmin.
J'ai tenté de supprimer la base et de la recréer au cas ou. Sans succès.

De plus, une fois que je veux ajouter une attraction j'ai une erreur en relation avec la relation "many to many".

Unknown record property / related component "id" on "AttractionCategory"

stack trace
at ()
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Record/Filter/Standard.php line 44


Je ne suis pas sûr que mes deux erreurs sont liées mais ce n'est pas impossible.

Avez vous une idée du problème ? Mon code YML est juste ?

Merci de m'avoir lu et merci d'avance de vos réponses !

[Updated on: Sat, 24 July 2010 04:57]

Previous Topic:symfony 1.4, admin generator and upload image
Next Topic:SOLVED - NEWBIE routing question
Goto Forum:
  

powered by FUDforum - copyright ©2001-2004 FUD Forum Bulletin Board Software