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_Db PHP Discussion :

Mettre à jour le profil [ZF 1.11]


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut Mettre à jour le profil
    Bonjour tous le monde,

    Comme j'avances timidement sur zend je souhaiterais savoir comment afficher les données d'un user une fois qu'il se connecte sur son interface et souhaite mettre à jour son profil. Mon bout de code est comme suit :

    Formulaire editUser.php :
    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
    29
    30
    31
    32
    33
    class Application_Form_EditUser extends Zend_Form
    {
        public function init()
        {
            $this->setName('/user/edit');        
            $this->setAction();
     
            $nom = new Application_Form_EText( 'nom', 'Nom : ' );
            $nom->addValidator('StringLength', false, array(6, 20));
     
            $prenom = new Application_Form_EText( 'prenom', 'Prenom : ' );
            $adresse = new Application_Form_EText( 'adresse', 'Adresse : ' );
     
            $codePostale = new Application_Form_EText( 'codePostale', 'Code Postale : ' );
            //$codePostale->addValidator(new Zend_Validate_Regex('#[0-9]{2} ?[0-9]{3}#'));
     
            $ville = new Application_Form_EText( 'ville', 'Ville : ' );
     
            $telMobile = new Application_Form_EText( 'telMobile', 'Numero de telephone mobile : ' );
            //$telMobile->setRequired(false)->addValidator('Digits')->addValidator(new Zend_Validate_StringLength(8));
     
            $telFixe = new Application_Form_EText( 'telFixe', 'Numero de telephone fixe : ' );
            //$telFixe->setRequired(false)->addValidator('Digits')->addValidator(new Zend_Validate_StringLength(8));
     
     
            $submit = new Zend_Form_Element_Submit ( 'submit' );
            $submit->setAttrib ( 'class', 'submitbutton' )->setLabel ( 'Update' )->setAttrib('class', 'submit');
     
            $elements = array($nom, $prenom, $adresse, $codePostale, $ville, $telMobile, $telFixe, $submit);  
     
            $this->addElements( $elements );
        }
    }
    Le controlleur UserController.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class UserController extends Zend_Controller_Action
    {
     
          $id = Zend_Auth::getInstance()->getIdentity()->id;
            $nom = Zend_Auth::getInstance()->getIdentity()->nom;
            $prenom = Zend_Auth::getInstance()->getIdentity()->prenom;   
     
            $editform = new Application_Form_EditUser();
     
            echo "id :".$id." nom ".$nom." prenom : ".$prenom;
     
       }
    Jusqu'ici je peux afficher les données (id, nom, prenom)
    model user.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract
    {
            protected $_name = 'user';        
    }
    Une question bête mais comment puis-je afficher ses données dans les input?

    Merci de m'aider.

  2. #2
    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
    Bonjour il te faut utiliser populate sur l instance de ton formulaire

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    Bonjour tous le monde,

    Merci 5h4rk d'avoir pris le temps pour me répondre. ce que j'ai fait comme code :
    Dans le model user.php
    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
    class Application_Model_DbTable_Users extends Zend_Db_Table_Abstract
    {
     
        protected $_name = 'user';    
     
        public function getUser($id)
        {
            $id = (int)$id;
            $row = $this->fetchRow( 'id = '. $id); //recupération de toutes les informations de la table user
            if (!$row) {
                    throw new Exception ("Could not find row $id");
                }
            return $row->toArray();
     
        }
    }
    UserController.php
    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
        public function editAction()
        {
            $id = Zend_Auth::getInstance()->getIdentity()->id;        
            $editform = new Application_Form_EditUser();
     
            echo "id :".$id." nom ".$nom." prenom : ".$prenom;
     
            $this->view->editform = $editform ;
     
            $id = $this->_getParam('id', 0);
            $us = new  Application_Model_DbTable_Users();        
     
            $profil = $us->getUser($id);
            $editform->populate($profile->toArray());
     
        }
    Normalement c'est a ce niveau ou je le probleme
    $profil = $us->getUser($id);
    $editform->populate($profile->toArray());
    Merci de me débloquer.

  4. #4
    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
    Regarde ton code tu fais ton toArray sur un tableau

  5. #5
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    J'ai refais moncontrôleur, j'ai constaté que j'envoi un joli 0 dans Id. normalement je dois mettre $id = Zend_Auth::getInstance() apres l'affichage du formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public function editAction()
        {
            $editform = new Application_Form_EditUser();
            $this->view->editform = $editform ;
     
            $id = $this->_getParam('id', 0); //on récupère l'id user par le champ hidden
            $id = Zend_Auth::getInstance()->getIdentity()->id;
            echo "id : ".$id;
            $info_user = new  Application_Model_DbTable_Users();        
            $profil = $info_user->getUser($id);
            Zend_Debug::dump($profil);
            $editform->populate($profile->getUser($id));
        }
    Résultat obtenu c'est que tous mes données son affiché dans array hors je souhaiterais les mettre chaque champs dans un input.

  6. #6
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    Je pense il y a quelque chose qui m'echappe.
    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
     
       public function editAction()
        {
            $editform = new Application_Form_EditUser();
            $this->view->editform = $editform ;
            $id = Zend_Auth::getInstance()->getIdentity()->id;
     
            $info_user = new  Application_Model_DbTable_Users();        
            $profil = $info_user->getUser($id);
            Zend_Debug::dump($profil);
     
            $data[] = array();
            $data['id'] = $profil->getId();
            $data['nom'] = $profil->getNom();
            $data['prenom'] = $profil->getPrenom();      
            $editform->populate($data);
     
        }
    Je vois Array rempli par les données mais sans view.

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

Discussions similaires

  1. Comment mettre à jour mon profil
    Par Salma2013 dans le forum Emploi
    Réponses: 12
    Dernier message: 09/11/2013, 22h11
  2. Mettre a jour son profil
    Par attalsebastien dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 03/08/2009, 11h57
  3. Réponses: 1
    Dernier message: 01/03/2007, 16h30
  4. Réponses: 3
    Dernier message: 09/07/2004, 10h23
  5. Réponses: 6
    Dernier message: 14/02/2003, 16h52

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