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 :

le populate refuse de replire les champs malgré que les donnees ont été récuperées [ZF 1.11]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut le populate refuse de replire les champs malgré que les donnees ont été récuperées
    Bonjour a tous ,

    j'affiche une liste de d'annonce, et je souhaite modifier une des lignes de ma bdd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    <a href="<?php echo $this->url(array('controller' => 'index',
            'action' => 'modifier', 'id' => $voiture->id)); ?>">Modifier</a>
    après avoir cliquer sur modifier cela m'amènne au controlleur
    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
     
     
     
        public function modifierAction() {
            $form = new Application_Form_Occasion(); //demarrage du formulaire avec ini()
            $form->envoyer->setLabel('modifer'); //on renome le bouton envoyer ou modifier par ex, surchage
            $this->view->form = $form;
     
            $id = $this->_getParam('id', 0);//on récupère le son id l'annonce par le champ hidden
            $recup_car = new Application_Model_DbTable_Cars();
           $recup_car->obtenirVoiture($id);
          var_dump($recup_car);
     
            $form->populate($recup_car->obtenirVoiture($id));
     
     
        }
    je demande de récupérer le forumaire de remplissage de l'annonce, ici c'est ok je vois bien mon forumaire qui est vide si je décomente cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         //   $form->populate($recup_car->obtenirVoiture($id));
    j'ai aussi vérfier que l'id de la ligne a bien été transmis au modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public function obtenirVoiture($id) {
            $id = (int) $id;
            echo "on recherce dans le numéro";
            echo $id;
            $row = $this->fetchRow('id=' . $id); //recupératio de toutes les informations de la table
            if (!$row) {
                throw new Exception("Impossible d'accéder à l'annonce"); //si l'id d'une annonce n'existe 
            }
            return $row;
        }
    cela affiche sur le forumulaire(toujours en décommentant le populate

    cela affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    on recherche le numéro 1

    lorsque je décomment ma ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $form->populate($recup_car->obtenirVoiture($id));
    j'ai une page blanche pas de formulaire et ni remplit

    j'ai testé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        var_dump($recup_car);
    et ce test me dit aussi que les infos on été charger, je vois voie le dump de $recup_car , que manque t'il dans mon script, quel test je peux encore executer pour trouver la solution ??

    j'éspère avoir tout mis les éléments pour répondre a ma question

    je vous remercie de vos réponses

  2. #2
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Bonjour,

    Les données que tu passes sont contenues dans un Zend_Db_Table_Row... Tu devrais essayer d'appliquer un ->toArray();

    Ensuite, quand tu lances obtenirVoiture(), il faut que tu affectes le résultat...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function modifierAction() {
            $form = new Application_Form_Occasion();
            $form->envoyer->setLabel('modifer'); // peut être fait dans le form
            $this->view->form = $form;
     
            $id = $this->_getParam('id', 0);
            $recup_car = new Application_Model_DbTable_Cars();
            $car = $recup_car->obtenirVoiture($id);
            $form->populate($car->toArray());
    }
    A la place de var_dump() essaye d'utiliser Zend_Debug::dump(), tu auras un meilleur formatage.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci beaucoup de ta réponse c'était bien ça, il faut impérativement passer donner a manger un array pour utlilser populate.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Zend_Debug::dump()
    c'est vrai que c'est encore plus lisible

    merci encore

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

Discussions similaires

  1. Lister les disques durs USB, les clés ainsi que les appareils photos
    Par infosam76 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 25/02/2015, 23h26
  2. Récupérer grâce à une requête SQL que les champs modifiés
    Par guigui11 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 29/08/2006, 09h58
  3. Réponses: 1
    Dernier message: 19/08/2006, 10h27
  4. Réponses: 4
    Dernier message: 01/03/2006, 13h58
  5. Comment voir les champs créés dans les tables?
    Par Missvan dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/02/2004, 10h27

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