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

ORM PHP Discussion :

Menu Nested en front


Sujet :

ORM PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 131
    Points : 37
    Points
    37
    Par défaut Menu Nested en front
    Bonjour j'ai creer un menu nested avec symfony , jusque la tout va bien, j ai donc en tout 26 categorie et sous categorie confondu

    le probleme c'est que lorsque je regarde la barre de log, j execute 26 requetes ! Donc quand le menu va augmenter celui-ci va executer un nombre incalculable de requete ce qui est un non sens total .

    Donc y a t il un moyen de reduire le nombre de requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      public function executeMenu(sfWebRequest $request)
      {
        $this->categories = Doctrine::getTable('Tree')->getTree();
      }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <h2>Catégories</h2>
    <ul>
      <?php foreach ($categories->fetchRoots() as $node) : ?>
        <li>
          <span><a href="/<?php echo Braineet::slugify($node['name']) ?>"><?php echo $node['name'] ?></a></span>
          <?php if($node->getNode()->hasChildren()): ?>
            <ul id="child_<?php echo $node['id']; ?>">
            <?php foreach($node->getNode()->getChildren() as $child): ?>
              <li><a href="/<?php echo Braineet::slugify($node['name']) ?>/<?php echo Braineet::slugify($child->getName()) ?>"><?php echo $child->getName(); ?></a></li>
            <?php endforeach; ?>
            </ul>
          <?php endif; ?>
        </li>
     
      <?php endforeach; ?>
    </ul>
    MERCI

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 131
    Points : 37
    Points
    37
    Par défaut
    Personne ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Points : 396
    Points
    396
    Par défaut
    C'est génial. Depuis que Doctrine a migré son site vers la v2, c'est pas la joie pour retrouver la doc ...

    Sinon, ton problème est tout à fait intéressant mais je ne vois pas de solution triviale à te proposer. Peut-être faudrait-il explorer vers le fait de faire tes requêtes Doctrine toi-même en te basant sur le fait que :
    - les roots ont un level à 0 (ou 1, je ne sais plus) ;
    - faire une jointure pour précharger automatiquement tous les enfants d'un root donné.

    Je ne suis pas sûr que cela permette de résoudre ton problème, mais c'est à tenter.

    Sinon, je me pose la question de l'utilité réelle d'utiliser le NestedSet behavior pour un tel besoin : un menu est généralement statique, et le décrire sous forme de fichier yml me semblerait plus judicieux, ou bien même un template dédié.

    Ceci dit, de façon plus générale, ton problème mériterait une solution, car si l'on est vraiment assujettit à une requête par exploration des enfants de ton root, cela pose vraiment la question de l'efficacité du NestedSet behavior !

Discussions similaires

  1. [eZ Publish] Menu déroulant sur le front
    Par Sub0 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 06/11/2012, 07h58
  2. TreeView et menu contextuel...
    Par agh dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/04/2009, 12h23
  3. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  4. Inserer Un Menu dans un autre en execution
    Par apt dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 11h22
  5. Menu en GL
    Par Kaïn dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/05/2002, 11h58

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