IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Admin generator et jointure ? [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut Admin generator et jointure ?
    Bonjour à tous,

    je souhaiterai savoir comment peut on effectuer des jointures avec l'admin generator? comment ça ce paramètre dans generator.yml? car pour le moment je n'ai que ma table avec laquelle j'ai généré l'admin.

    De plus, comment peut on modifier les templates de l'admin generator (le html et non le css) alors que les fichiers indexsuccess.php et editsucces.php sont dans le cache de symfony??

    merci pour votre aide

  2. #2
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Bonjour,

    Pour effectuer un join lors de la requête de ta liste d'admin generator, il faut modifier ton generator.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    list:
      table_method: yourMethod
    Puis dans YourModelTable.class.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public function yourMethod(Doctrine_Query $q)
      {
        $rootAlias = $q->getRootAlias($q);
        $q->leftJoin($rootAlias.'.YourJoinTable c');
        return $q;
      }
    Ensuite, pour utiliser les templates générés par l'admin generator, il te suffit de copier le fichier du cache nécessaire dans le répertoire template de ton module (par exemple cache/backend/dev/modules/auto_yourModule/templates/_form_header.php vers apps/backend/modules/yourModule/templates) et de le modifier à ta guise.

    ps : saloper... de message qui a disparu après validation ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    ok pour tous
    effectivement en collant les templates du cache dans mon module ça marche nickel.

    Ensuite j'ai créé une méthode pour effectuer une requête avec jointure comme tu me là expliqué mais après comment je fait pour l'afficher dans le frontend? car la je n'ai que la table principale d'affiché et je n'arrive pas à afficher les autres champs même en modifiant le generator.yml avec l'option display:[monchamp]

    merci

  4. #4
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Nous avons 2 tables liées :
    - User (avec nom et prenom comme champs)
    - Infos (avec adresse comme champ)
    On affiche la liste des Users et on veut afficher pour chacun leur adresse.

    Ce qu'il est possible de faire dans le fichier generator.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    display: [nom, prenom, Adresse]
    - nom et prenom viennent de la table principale (User)
    - Adresse doit venir de la table jointe (Infos)

    Dans lib/model/doctrine/user.class.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function getAdresse()
    {
      return $this->getInfos()->adresse;
    }
    Quand tu indiques un champ avec une majuscule dans le tableau des display, il essaye d'appeler la fonction correspondante.
    Tu peux aussi faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    display: [nom, prenom, _adresse]
    Dans apps/yourApp/modules/user/templates/_adresse.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $user->getInfos()->adresse ?>

  5. #5
    Membre chevronné Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut
    Ah, tu as une autre solution aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    display: [nom, prenom, Infos]
    et dans lib/model/doctrine/infos.class.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function __toString()
    {
      return $this->adresse;
    }
    Normalement, l'admin gen utilisera la méthode toString de Infos (étant donné que c'est une table liée)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    ça c'est dans le cas ou la clé étrangère et dans la table user?
    car dans mon cas la clé étrangère est dans la table infos

    j'ai essayé les trois méthode et aucune ne marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Jointure Admin Generator
    Par hugo_dev dans le forum Symfony
    Réponses: 20
    Dernier message: 08/05/2011, 12h27
  2. [1.x] Admin generator & jointure
    Par Onime Records dans le forum Symfony
    Réponses: 3
    Dernier message: 02/10/2009, 16h53
  3. [1.x] Admin generator - images administrables
    Par wadzat dans le forum Symfony
    Réponses: 3
    Dernier message: 30/05/2008, 15h39
  4. Réponses: 7
    Dernier message: 25/05/2008, 17h06
  5. [1.x] Champs i18n disabled par l'admin generator
    Par wadzat dans le forum Symfony
    Réponses: 1
    Dernier message: 22/05/2008, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo