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 :

personaliser _list.php backend


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
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Par défaut personaliser _list.php backend
    slt je ne me souvient plus comment on récupérer les valeur des table.

    ma table se nome "collection". J'ai essayer un foreach mes rien affaire.

    Merci de votre indulgence .

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Salut,

    J'ai l'impression que le titre de ton sujet et ton problème sont quelque peu différents. Si j'ai bien compris tu veux accéder à des valeurs que tu récupères en base de données, puis tu veux les afficher et les mettre en forme dans ton _list.php, à savoir ta vue.

    Donc la première étape est de récupérer ces valeurs dans le contrôleur de ton module "collection" je présume (actions.class.php) à l'aide de la requête de ton choix. Tu vas stocker ce résultat dans une variable $collection.

    Une fois que tu les as dans le contrôleur, pour les passer à la vue, cette ligne suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->collection = $collection;
    Maintenant, tu peux accéder à cette liste dans ton _list.php en utilisant $collection.

    Bien entendu, tout ça doit se trouver dans le même module.
    Il faudrait un peu plus de détails si cela ne suffit pas à régler ton problème.

    Un petit détour par là pourrait te rafraichir la mémoire également : http://www.symfony-project.org/jobee...Doctrine/fr/04

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Par défaut
    pour tous dire j'ai essayer de passe avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function executeIndex(){
     
        $this->collection= Doctrine::getTable('Collection')
          ->createQuery('a')
          ->execute();
      }
    }
    en suite dan ma vu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    foreach ($collection as $c):
     
    ?>
    <?php echo $c->getTitle();?>
    <?php endforeach ?>
    j'ai meme essayé de mettre dans la class collection.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       function getAll(){
         $q = Doctrine_Query::create()
            ->from('collection')
            ->execute();
        return $q;}
    la vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    foreach ($collection->getAll() as $e => $c):
     
    ?>
    <?php echo $c->getTitle();?>
    <?php endforeach ?>
    mes rien a faire

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Vérifie dans un premier temps que tu as bien récupéré ta collection dans ton contrôleur. Fais ton foreach dans le contrôleur et affiche quelque chose ("plop") pour chaque élément parcouru.

    Ensuite essaye voir ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $q = Doctrine_Query::create()
      ->from('collection');
     
    $collection = $q->execute();
     
    foreach($collection as $c)
    {
      echo "plop";
    }
    s'il t'affiche des plop, tu récupères une collection d'éléments.

    Seulement ensuite tu vérifies que ça ne vient pas d'un problème avec tes accesseurs : je vois que tu as essayé plusieurs techniques ($collection->getAll()->getTitle ou parfois juste $collection->getTitle) : une fois que tu es sûr d'avoir une collection non vide, tu testes avec tes accesseurs.

    Et une fois que ta boucle affiche tes données dans le contrôleur alors tu passes ta collection à la vue via un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->collection = $collection;
    Si tu partages ton schema.yml ce sera aussi plus simple, si le problème vient des méthodes de ton objet.

Discussions similaires

  1. [1.x] Backend.php vers /admin + guard
    Par globule22 dans le forum Symfony
    Réponses: 16
    Dernier message: 12/04/2011, 10h04
  2. [1.x] comment personaliser un lien dans le backend
    Par sou1987 dans le forum Symfony
    Réponses: 1
    Dernier message: 26/04/2010, 11h37
  3. Redirection nom de domaine vers backend.php?
    Par ricardvince dans le forum Apache
    Réponses: 2
    Dernier message: 20/05/2008, 14h42

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