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 :

récupérer un paramètre dans zend view


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 62
    Points : 39
    Points
    39
    Par défaut récupérer un paramètre dans zend view
    Bonjour,
    j'ai un petit problème pour accéder à une valeur que j'ai envoyé par le contrôleur vers ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $this->view->info="valeur";
    pour récupérer cette valeur je fais alors :
    $this->info
    mais je trouve un null, pourtant avec var_dump($this) dans la vue je vois bien ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ...
              public 'info' => string 'valeur' (length=4)
              public 'form' => 
    ...
    comment je fais, svp !!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    peut-on voir l'action ainsi que la vue qui lui est associée?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    oui bien sur, je précise aussi que je n'est pas écrit le code, je suis chargé de le modifier
    dans le contrôleur j'ai le code suivant (résumé):
    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
    18
    19
    20
     
    class FoldersController extends Project_Controller_Action_Backoffice
    {
    ...
     public function editAction(){
    ...
     $foldersTable		= new Model_Folders();// zend_db
     
      $form			= new Backoffice_Form_Folders();// zend_form
     
      $folder			= $foldersTable->find($this->_getParam('id'))->current();
     
       $this->view->assign('divType','valeur'); //paramètre que je cherche à récupérer
     
       $form->populate($data);
     
       $this->view->form	= $form;
     
     }
    ..
    il y une vue edit associé à l'action (edit.phtml) :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <div id="wrapper">
     
    	<!-- Header -->
    	<?= $this->partial('partials/header.phtml'); ?>
    	<!-- Header -->
     
    	<!-- Menu -->
    	<?= $this->partial('partials/menu.phtml'); ?>
    	<!-- Menu -->
     
    	<div style="clear:both"></div>
     
    	<!-- Content Area -->
    	<div id="middlepart">
     
    		<!-- Left column -->
    		<div id="middlecolumn">
     
    			<?= $this->form; ?>
     
    		<!-- Left Column -->
    		</div>
    	<!-- Content -->
    	</div>
    </div>
    <!-- Wrapper -->
     
    <?= $this->partial('partials/footer.phtml'); ?>
    et puis il y a le fichier folders.phtml dont je sais comment on lui fait appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div >
    ..
    <?= $this->element->NUMDOSSIER; ?> 
    ..
     echo "divType: ".$this->divType; // je fais appel au paramètre envoyé dans le contrôleur.
    </div>
    merci bcp pour votre intérêt

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    d'après ton code la variable $this->divType assignée à la vue dans le controlleur n'est jamais affichée dans edit.phtml. Pour afficher $this->divType à la vue, tu as 2 choix, soit tu l'appeles directement :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //edit.phtml
    <?php
    echo $this->divType;
    ?>

    soit tu appelles le partial folders.phtml(qui affiche $this->divType) dans la vue edit.phtml:


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //edit.phtml
    <?php
    //folders.phtml doit être dans views/scripts/partials
    echo $this->partial('partials/folders.phtml'); 
    ?>

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    ça marche très si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //edit.phtml
    <?php
    echo $this->divType;
    ?>
    mais j'aimerais bien accéder à 'divType' dans folders.phtml, qui ne marche pas, et si j'essaie de faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //edit.phtml
    <?php
    //folders.phtml doit être dans views/scripts/partials
    echo $this->partial('partials/folders.phtml'); 
    ?>
    on ajoutant folders.phtml dans le dossier partials, alors dans ce cas j'ai une erreur not found ..folders.phtml

    mois je pense puisque dans folders.phtml on fait appel au éléments du formulaire sans problème alors je pense qu'on peut accéder à 'divType', sachant que quand je mets var_dump($this) dans folders.phtml, j'ai une ligne qui vérifie que le variable existe bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public 'divType' => string 'valeur' (length=4)
    il faudrait juste trouver la bonne méthode

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    pense puisque dans folders.phtml on fait appel au éléments du formulaire sans problème alors je pense qu'on peut accéder à 'divType', sachant que quand je mets var_dump($this) dans folders.phtml
    si folders.phtml fait appel aux éléments du formulaire c'est qu'il est inclut dans la construction du formulaire.Regarde dans la classe Backoffice_Form_Folders si le fichier folders.phtml est inclut.

  7. #7
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Bonjour,

    A moins d'être complètement à côté de la problématique... l'helper de vue partial a pour spécificité d'effectuer le rendu de la vue en étant isolé du scope de la vue qui l'appelle, et donc il ne peut pas accéder aux variables déclarées dans la vue.

    Pour y remédier :
    • Soit passer un second paramètre qui est un tableau clé / valeurs de ce que l'on veut afficher dans le partial.
    • Soit utiliser render à la place, ce qui est recommandé si on n'a pas besoin de l'isolation... car plus performant.


    La doc officielle : http://framework.zend.com/manual/1.1...nitial.partial

Discussions similaires

  1. [Web Service][SOAP] Récupérer des paramètres dans l'entête
    Par Dadou dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/01/2008, 13h51
  2. Réponses: 1
    Dernier message: 06/04/2007, 16h33
  3. récupérer les paramètres dans une url
    Par asetti dans le forum ASP
    Réponses: 6
    Dernier message: 23/12/2005, 10h08
  4. [WebForms][2.0] Récupérer un paramétre dans un hiddenfield
    Par cereal59 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 21/11/2005, 22h56
  5. Réponses: 1
    Dernier message: 29/08/2005, 14h04

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