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

Zend Framework PHP Discussion :

vérifier le contenu d'un objet zend dans la vue


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut vérifier le contenu d'un objet zend dans la vue
    Bonjour,
    je suis débutante en zend et j'ai fait une page sur laquelle j'affiche un tableau de données issues de ma base. Pour cela, dans ma vue, je récupère les données envoyées et fais un foreach()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $tout=$this->tout;
    ......
    foreach($tout as $n)
    {
         echo '<tr>
                        <td>'.$n["nom"].'</td>
                        <td>'.$n["titre"].'</td>
                        .....
                </tr>';
    }
    ça marche très bien.
    Mais ce que j'aimerai, c'est lorsque je récupère le résultat envoyé par le contrôleur, vérifier si la variable $tout est peuplée, dans ce cas je fais le foreach, sinon, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(/*non peuplé $tout*/)  echo "Aucun enregistrement ne correspond à vos critères";
    je ne sais pas comment faire cela. J'ai pensé à faire un
    if(empty($tout)) --> erreur de conversion objet zend en string
    if(is_object($tout)) --> c'est toujours un objet

    Si quelqu'un a une solution à me proposer, je suis preneur.

    Merci d'avance!!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    En fait normalement, si une variable n'existe pas dans une vue un appel à $this->variable renvoie null.

    Tu peux utiliser ceci à ton avantage en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($this->tout) {} else {}
    Encore faut-il que ton controller ne passe pas la variable s'il n'y a pas de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ([j'ai des donnees]) {
      $this->view->tout = $lesDonnees;
    }

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut
    Salut!!
    merci pour ta réponse.
    Dans le contrôleur, je fais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if ($db->getParTechno($technologie)->RowCount() > 0)
                    $this->view->tout = $db->getParTechno($technologie);
    et le if() ... else dans la vue, mais ça ne change rien.

    Normalement, si la requête ne renvoie aucun enregistrement, on devrait avoir 0 avec RowCount(), à moins que je ne me trompe.

  4. #4
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Fais un :
    Comme sa tu vois exactement ce que sa te retourne, et te permettra de construire ta condition.

  5. #5
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Pour commencer quand tu retourne le résultat à la vue c'est un tableau que tu es censer avoir, donc dans le cas où tu n'as pas de données à renvoyer, renvois un tableau vide.

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut
    salut!

    var_dump() me renvoi du code (ce que je trouve bizarre d'ailleurs). ça ne m'éclaire donc pas sur le contenu de tout.
    5h4rk, le résultat envoyé à la vue n'est apparemment pas un tableau, mais un objet zend_PDO_...., donc je ne peux pas le manipuler comme tel.
    Par exemple, la fonction count() sur un tableau est sensé me retourner le nombre d'éléments du tableau. Même lorsque ma variable $tout est vide, count($tout) me renvoie un nombre.

    je continue à chercher.
    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/04/2014, 23h29
  2. Réponses: 6
    Dernier message: 18/08/2010, 10h42
  3. Réponses: 2
    Dernier message: 16/07/2007, 14h13
  4. [DOM] Récupérer contenu d'un objet de type org.w3c.dom.Document dans une chaine de caractèr
    Par danyboy85 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 18/01/2007, 10h38
  5. Utiliser des objets SWING dans une vue RCP
    Par manuga72 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 20/10/2006, 17h26

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