Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 11h04   #1
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 77
Points : 77
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 :
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 :
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 :
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 :
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 :
1
2
on recherche le numéro 1

lorsque je décomment ma ligne
Code :
1
2
 
       $form->populate($recup_car->obtenirVoiture($id));
j'ai une page blanche pas de formulaire et ni remplit

j'ai testé avec
Code :
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
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 11h37   #2
Membre régulier
 
Homme Thomas DUTRION
Développeur Web
Inscription : février 2009
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Thomas DUTRION
Âge : 23
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2009
Messages : 58
Points : 93
Points : 93
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 :
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.
Théocrite est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/08/2011, 17h20   #3
Membre régulier
 
Inscription : août 2008
Messages : 402
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 402
Points : 77
Points : 77
merci beaucoup de ta réponse c'était bien ça, il faut impérativement passer donner a manger un array pour utlilser populate.

Code :
1
2
 
Zend_Debug::dump()
c'est vrai que c'est encore plus lisible

merci encore
keokaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h49.


 
 
 
 
Partenaires

Hébergement Web