Comme il n'y a pas de champ "id" dans la table, ni de champ défini
comme "primary key", Propel tente d'ajouter le champ ID lui même.
Si je ne me trompe pas, il faut ajouter la propriété "primaryKey:
true" sur le champ "oid" (qui a l'air d'être bien cette clé) pour
qu'il soit utilisé comme clé primaire, et ça devrait marcher.
On 14 mai, 17:20, Milooz <[EMAIL PROTECTED]> wrote:
> Bonjour,
>
> Je doit transformer un site existant en utilisant Symfony.
> C'est mon premier projet utilisant ce framework.
> La base de donnees existe deja.
> J'ai utilise propel-build-schema pour genere le fichier schema.yml.
> Il y a beaucoup de tables mais pour l'instant je m'interesse surtout a
> la table Article.
>
> Mon probleme est que le fichier schema.yml parait bon, j'y vois tout
> les champs de la table et pas une de plus, en revanche, dans les
> fichiers BaseArticle.php et BaseArticlePeer.php je vois un nouveau
> champ (propriete de la classe) respectivement
> protected $id;
> et
> const ID = 'article.ID';
>
> Quand j'essaye d'executer une requete via la fonction suivante :
> public static function getRecentArticle()
> {
> $c = new Criteria();
> $c->add(ArticlePeer::STATUS, 'published');
> $c->add(ArticlePeer::NEWS, '1');
> $c->add(ArticlePeer::TOPIC_OID, '10');
> $c->addDescendingOrderByColumn(ArticlePeer::CREATION);
> $c->setLimit(1);
> $article = ArticlePeer::doSelect($c);
> return ($article);
> }
>
> je recoit l'exception suivante :
>
> [wrapped: Could not execute query [Native Error: Unknown column
> 'article.ID' in 'field list'] [User Info: SELECT article.OID,
> article.CREATION, article.TITLE, article.BODY_RAW, article.BODY_HTML,
> article.AUTHOR_NAME, article.AUTHOR_EMAIL, article.TOPIC_OID,
> article.STATUS, article.LETTER_OID, article.NEWS, article.GAMES,
> article.MOBILES, article.CHANNEL, article.MANAGER, article.LVN,
> article.HIFI, article.SECTOR_OID, article.THEME_OID,
> article.MOBILES_OID, article.GAMES_OID, article.MANAGER_OID,
> article.MANAGERC_OID, article.LVN_OID, article.MOTS_CLEFS,
> article.SOCIT, article.ID FROM article WHERE
> article.STATUS='published' AND article.NEWS=1 AND article.TOPIC_OID=10
> ORDER BY article.CREATION DESC LIMIT 1]]
>
> Je vais modifier ma fonction pour demander seulement les champs dont
> j'aurais besoin, toutefois j'aimerais resoudre ce probleme.
>
> D'avance merci.
>
> Vous pouvez trouver ici une partie du fichier scema.yml :
> article:
> _attributes:
> idMethod: native
> oid:
> type: INTEGER
> required: true
> autoIncrement: true
> creation:
> type: TIMESTAMP
> required: true
> default: 0000-00-00 00:00:00
> title:
> type: LONGVARCHAR
> body_raw:
> type: LONGVARCHAR
> body_html:
> type: LONGVARCHAR
> author_name:
> type: VARCHAR
> size: 100
> required: true
> default:
> author_email:
> type: VARCHAR
> size: 100
> required: true
> default:
> topic_oid:
> type: INTEGER
> required: true
> default: 0
> status:
> type: CHAR
> required: true
> default: draft
> letter_oid:
> type: INTEGER
> required: true
> default: 99
> news:
> type: TINYINT
> required: true
> default: 0
> games:
> type: TINYINT
> required: true
> default: 0
> mobiles:
> type: TINYINT
> required: true
> default: 0
> channel:
> type: TINYINT
> required: true
> default: 0
> manager:
> type: TINYINT
> required: true
> default: 0
> lvn:
> type: TINYINT
> required: true
> default: 0
> hifi:
> type: TINYINT
> required: true
> default: 0
> sector_oid:
> type: INTEGER
> required: true
> default: 0
> theme_oid:
> type: INTEGER
> required: true
> default: 0
> mobiles_oid:
> type: INTEGER
> required: true
> default: 0
> games_oid:
> type: INTEGER
> required: true
> default: 0
> manager_oid:
> type: INTEGER
> required: true
> default: 0
> managerc_oid:
> type: INTEGER
> required: true
> default: 0
> lvn_oid:
> type: INTEGER
> required: true
> default: 0
> mots_clefs:
> type: VARCHAR
> size: 255
> required: true
> default:
> socit:
> type: VARCHAR
> size: 255
> required: true
> default:
> _indexes:
> oid:
> - oid
> topic_oid:
> - topic_oid
> creation:
> - creation
> author_name:
> - author_name
> news:
> - news
> - games
> - mobiles
> - channel
> - manager
> - lvn
> - hifi
> lvn_oid:
> - lvn_oid
> fulltext:
> - title
> - body_html
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr"
de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse [EMAIL PROTECTED]
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---