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 :

Doctrine Tree : Cannot find any representation field [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Points : 142
    Points
    142
    Par défaut Doctrine Tree : Cannot find any representation field
    Bonjour, j'ai suivi la documentation sur les extensions doctrine (https://github.com/Atlantic18/Doctri...er/doc/tree.md) pour créer une entité Tree (nested set) dans un projet Symfony. Tout marche bien sauf que quand je fais une requête pour générer une structure en arbre personnalisée, il me retourne comme résultat d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot find any representation field
    La requête est la même que celle proposée dans la documentation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $repo = $em->getRepository('Entity\Category');
    $query = $entityManager
        ->createQueryBuilder()
        ->select('node')
        ->from('Entity\Category', 'node')
        ->orderBy('node.root, node.lft', 'ASC')
        ->where('node.root = 1')
        ->getQuery()
    ;
    $options = array('decorate' => true);
    $tree = $repo->buildTree($query->getArrayResult(), $options);
    Aucune erreur ne se produit si j'utilise la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arrayTree = $repo->childrenHierarchy();
    Mais le message d'erreur revient au galop si j'y place des arguments comme ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $htmlTree = $repo->childrenHierarchy(
        null, /* starting from root nodes */
        false, /* true: load all children, false: only direct */
        array(
            'decorate' => true,
            'representationField' => 'slug',
            'html' => true
        )
    );
    J'ai googlé un peu mais apparemment je dois être le seul à rencontrer ce problème. Si quelqu'un a une idée là-dessus, je suis bien preneur. Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Points : 49
    Points
    49
    Par défaut
    Ton array d'options est incomplet. Certains champs sont manquants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $options = array(
        'decorate' => true,
        'rootOpen' => '<ul>',
        'rootClose' => '</ul>',
        'childOpen' => '<li>',
        'childClose' => '</li>',
        'nodeDecorator' => function($node) {
            return '<a href="/page/'.$node['slug'].'">'.$node[$field].'</a>';
        }
    );

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Points : 142
    Points
    142
    Par défaut
    Ca a marché. Merci. Mais du coup j'ai un autre problème. Impossible de récupérer une entité associée à travers sa propriété dans twig. Ca renvoie toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Key "formation" for array with keys "id, titre, sommaire, slug, deactivated, lft, lvl, rgt, root, __children" does not exist in SviFormationBundle:Formation:see_courses.html.twig
    Voici ma fonction dans le repository :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = $this->createQueryBuilder('node')
                ->leftJoin('node.formation', 'f', 'WITH', 'f.slug = :slug')
                ->leftJoin('node.courss', 'c')
                ->orderBy('node.root, node.lft', 'ASC')
                ->where('node.root = 1')
                ->setParameters(array('slug' => $slug))
                ->getQuery()
            ;
    T'aurais pas une soluce pour ça aussi ? Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 74
    Points : 49
    Points
    49
    Par défaut
    Met ce sujet à résolu et ouvres-en un autre.

    Pas compris ce que tu cherches à faire mais normalement tu peux afficher le htmltree dans twig.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% block content %}
        <div>
            {{ htmltree |raw }}
        </div>
    {% endblock %}

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2010, 16h22
  2. Réponses: 1
    Dernier message: 24/10/2008, 13h35
  3. [erreur] Cannot find bean in any scope
    Par j_esti dans le forum Struts 1
    Réponses: 10
    Dernier message: 06/06/2008, 13h34
  4. Cannot find bean busliste in any scope
    Par zaineb.z dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/07/2007, 18h39
  5. Réponses: 2
    Dernier message: 30/05/2007, 20h25

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