Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je commence a testé les sessions mais je n'arrive pas à le récupérer
voici un test rapide que j'ai fait
//indexcontroller $session = new Zend_Session_Namespace('identity'); Zend_Debug::dump($session); $session->panier="unepomme"; echo $session->panier;
ici les test est ok je vois bien écrit "unepomme";
maintenant dans l'index.html je crée un lien pour voir le panier
<a href='<?= $this->url(array('controller' => 'index', 'action' => 'voirpanier'), null, true); ?>'>voir Panier</a>
si je clique sur voirpanier , je ne vois la session
//controller index public function voirpanierAction() { echo $session->panier; }
comment s'y prend ton pour obtenire le panier ?
merci d'avance de vos réponse
Dernière modification par keokaz (12-09-2011 19:20:40)
Hors ligne
Tout est expliqué dans la doc...
Dans ta première action :
[lang=php] $session = new Zend_Session_Namespace('identity'); $session->panier="unepomme";
Dans la seconde :
[lang=php] $session = new Zend_Session_Namespace('identity'); $this->view->panier = $session->panier;
Hors ligne
je te remercie de ta réponse, mais alors, dans une vue on ne peux pas appeller la session directement ? il faut uniquement l'appeller dans le controlleur ?
Hors ligne
Tu peux l'appeler dans la vue exactement de la même façon, mais dans ce cas l'intérêt du modèle MVC devient inexistant...
La vue sert normalement à afficher les données préparées par l'action.
Hors ligne
j'ai donc essayer
<?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { $session = new Zend_Session_Namespace('identity'); $session->panier="unepomme"; $this->view->panier=$session; } }
index.phtml
<h1>test de la session</h1> <?php echo $this->panier;?>
Catchable fatal error: Object of class Zend_Session_Namespace could not be converted to string in /var/www/helper/application/views/scripts/index/index.phtml on line 2
on est obligé de faire un toString ?
j'ai ceci avec un Zend_deubg::dump($this->panier
object(Zend_Session_Namespace)#31 (1) { ["_namespace":protected] => string(8) "identity" } object(Zend_Session_Namespace)#31 (1) { ["_namespace":protected] => string(8) "identity" }
Dernière modification par keokaz (12-09-2011 18:07:05)
Hors ligne
Ici, panier c'est ton objet de session, pas la string que t'as alloué à panier... => Zend_Session_Namespace
Pourquoi le mettre en session pour le passer à la vue ?
[lang=phtml] <h1>test de la session</h1> <?php echo $this->panier->panier;?>
Ou plus propre...
[lang=phtml] <?php class IndexController extends Zend_Controller_Action { public function indexAction() { $session = new Zend_Session_Namespace('identity'); $session->panier="unepomme"; $this->view->panier=$session->panier; } }
[lang=phtml] <h1>test de la session</h1> <?php echo $this->panier;?>
Maintenant je vois toujours pas l'intérêt de la manipulation...
Hors ligne
merci de ton explication j' ai saisie le truc
Dernière modification par keokaz (12-09-2011 19:20:20)
Hors ligne
Pages: 1