Yohan Giarelli

Concepteur / Développeur PHP5 / Symfony.
Mangeur de bières.
Technophile.

  1. D’où l’importance de la casse (bonbon)

    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 !