Concepteur / Développeur PHP5 / Symfony.
Mangeur de bières.
Technophile.
Dans le cadre d’un projet symfony 1.4 / Doctrine 1.2, avec un back-office constitué essentiellement d’admin generator, avec des tables i18n et tout ce qui va avec, je me sui frotté à un problème… assez sympa :
Avec ce schema :
Category:
actAs:
NestedSet:
hasManyRoots: true
rootColumnName: thematic_id
Timestampable: ~
I18n:
fields: [ name ]
columns:
id: { primary: true, autoincrement: true, type: integer }
thematic_id: { type: integer, notnull: true }
name: { type: string, length: 255, notnull: true }
relations:
Thematic:
onDelete: CASCADE
L’admin generator me sortait ce genre de requete :
SELECT c.id AS c__id, c.thematic_id AS c__thematic_id, c.name AS c__name, c.lft AS c__lft, c.rgt AS c__rgt, c.level AS c__level, c.created_at AS c__created_at, c.updated_at AS c__updated_at FROM category c
Sauf que du coup, le champ c.name, il pouvait toutjours le chercher dans la table de base !
Après de longues heures de recherches, voici la solution (ridicule) à ce problème, située dans mon generator.yml :
generator:
class: sfDoctrineGenerator
param:
model_class: category
theme: admin
non_verbose_templates: true
with_show: false
singular: ~
plural: ~
route_prefix: category
with_doctrine_route: true
actions_base_class: sfActions
...
et plus précisément, ici :
model_class: category
Mon generator.yml a été généré avec un c minuscule à category, ce qui générait ces problèmes de requêtes à la première exécution, maintenant on le saura !