tuto MVC erreur : trying to get property of non object
bonjour tout le monde,
j'ai suivi le tutoriel d'initiation à l'approche MVC avec zend. Au début tout marche bien, l'exemple donné dans le tutoriel fonctionne correctement mais quand j'ai essayé de développer un autre exemple j'ai trouvé un probléme dans la partie modification: quand je clique sur modifier les champs de texte qui devrait être remplis en principe par les valeurs de l'enregistrement à modifier sont remplis par une erreur dans le fichier form.phtml :
trying to get property of non object on line X... est ce que quelqu'un pourrait m'aider à résoudre ce probléme? merci.
la ligne du code qui declenche l'erreur
voici la ligne du code indiquée par l'erreur:
<input type="text" name="login"
value="<?php echo $this->escape($this->compte->login); ?>" />
j'ai une table compte constituée de deux champs(login,pass);
code de la fonction de modification
en fait je suis debutant je comprends pas ce que vous vouliez dire.
de toutes façons voici le code de la fonction de modification:
Code:
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 34 35 36 37 38 39
| function modifierAction(){
//echo "<h1>dans compteController:modifierAction</h1>";
$this->view->title = "Modifier un compte!!";
$compte = new CompteGestion();
if($this->_request->isPost()){
Zend_Loader::loadClass('Zend_Filter_StripTags');
$filter = new Zend_Filter_StripTags();
$id = (int)$this->_request->getPost('idCompte');
$login = $this->_request->getPost('login');
$pass = $this->_request->getPost('pass');
$login = trim($login);
$pass = trim($pass);
if($id !=false){
if($login != '' && $pass != ''){
$data = array('login'=>$login,'pass'=>$pass);
$where = 'idCompte='.$id;
$compte->update($data,$where);
$this->_redirect('/compte');
return;
}
else{
$this->view->compte = $compte->fetchRow('idCompte='.$id);
}
}
}
else{
$id = (int)$this->_request->getParam('idCompte',0);
if($id>0){
$this->view->compte = $compte->fetchRow('idCompte='.$id);
}
}
$this->view->action = 'modifier';
$this->view->buttonText = 'Mettre a jour';
//$this->render();
} |
l'erreur residait dans index.phtml
bonjour
je remercie vivement yoteco pour son aide et pour le temps qu'il a consacré pour résoudre mon probleme.
en fait le probleme était dans la récupération de l'id au niveau de getParam...
la page d'index envoyait un parametre appelé id et moi je récupérais un idCompte, du coup la valeur retournée est celle par défaut càd 0, quand le modéle essayait de récupèrer l'enregistrement d'id 0 il ne le trouvait pas et c'est cela qui déclenche l'erreur.