|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
Centrallatice Smarty n00b
Joined: 13 Mar 2014 Posts: 1
|
Posted: Thu Mar 13, 2014 9:32 am Post subject: Appeler une méthode d'un objet contenu dans un objet Session |
|
|
Bonjour,
Je tente désespéramment de récuperer une valeur d'un Objet lui même Contenu dans un objet parent le tout enregistrée dans la Session et assigner par reference avec Smarty depuis mon Template.
Je m'explique j'ai un Objet A contenant des propriétés privées que j'enregistre en session et que j'arrive à atteindre depuis mon template de cette facon :
Code: | <?php
class A{
private $_id;
public function setid($id){ $this->_id=$id;}
public function getid(){ return $this->_id;}
}
|
Depuis mon controller je fais :
Code: |
$_SESSION[SESSION_NAME]['A']=new A();
|
sans oublier
Code: |
parent::$_objInstanceSmarty->assign_by_ref('monObj',$_SESSION[SESSION_NAME]['A']);
|
Ce qui me permet depuis mon template de faire :
Ce qui fonctionne très bien, mais ca se corse lorsque dans mon objet A je stocke un Objet B
Code: | <?php
class A{
private $_id;
private $_objB;
public function setid($id){ $this->_id=$id;}
public function getid(){ return $this->_id;}
public function setobj($o){ $this->_objB=$o;}
public function getobj(){ return $this->_objB;}
}
class B{
private $_nom;
public function setnom($n){ $this->_nom=$n;}
public function getnom(){ return $this->_nom;}
}
|
Donc je fais :
Code: |
$_SESSION[SESSION_NAME]['A']=new A();
// ET
$_SESSION[SESSION_NAME]['A']->setobj(new B());
//ENFIN :
parent::$_objInstanceSmarty->assign_by_ref('monObj',$_SESSION[SESSION_NAME]['A']);
|
Et la impossible de faire appel a la mthode getnom de mon objet B depuis mon template :
{$monObj->getobj()->getnom()}
me retourne une erreur dans le template :
Parse error: syntax error, unexpected '>' in templates_c/%%D2^D27^D276B76E%%Etape2.tpl.php on line 54
CE qui est normal car lorsque j'ouvre le fichier du template compiler je vois que smarty interprete {$monObj->getobj()->getnom()} par
$this->_tpl_vars['monObj']->getobj() - > getnom ( ))
Vous remarquez l'espace dans - > que j'ai mis en gras !
Je ne comprend pas pourquoi
Merci pour votre aide[/code]
Précision j'utlise smarty 2.6.28 |
|
Back to top |
|
bluejester Smarty Regular
Joined: 26 Apr 2012 Posts: 55
|
Posted: Tue Apr 08, 2014 2:32 pm Post subject: |
|
|
Hello,
Essaye de vider ton dossier templates_c, Smarty a peut-être galéré à compiler.
Sinon, Smarty 2.6.28 est basée sur Smarty 2.6, qui est sorti en 2003.
Utiliser une version aussi vieille avec PHP5, c'est un peu comme essayer de faire tourner Apache sur Windows 95...
Avec Smarty 3.1+, tu auras beaucoup moins de problèmes
Ben |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|