Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-03-2013 16:41:36

celionor
Nouveau membre
Date d'inscription: 08-03-2013
Messages: 3

Passer une variable au layout [Résolu]

Bonjour,

Mon site est composé d'une interface pour la page d'accueil, et d'une autre pour les pages annexes.
Elles sont différenciées simplement via une classe CSS.
Ex :

Code:

[lang=html]<body class="homepage">...</body>
 ou 
<body class="annexe">...</body>

Mon idée est donc d'envoyer une variable au layout.phml si l'on est sur la page d'accueil.

Pour cela, je suis allé sur Application/src/Application/Controller/IndexController.php, j'ai ajouté une valeur au ViewModel comme suit :

Code:

[lang=php]
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel(array(
            'homepage' => true,
        ));
    }
}

Seulement, comment je peux récupéré cette valeur dans mon layout.phtml ?

Sur un module, pour récupérer une valeur, je fais juste un <?php echo $variable; ?> et ça fonctionne.

Merci de votre aide,
Florent

PS : Je viens tout juste de débuter sur ZF2, donc merci d'en prendre compte wink

Dernière modification par celionor (08-03-2013 19:10:42)

Hors ligne

 

#2 08-03-2013 17:13:03

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Passer une variable au layout [Résolu]

Bonjour,

Le plus simplement du monde...

Dans ton controller:

Code:

$this->layout()->setVariable('MaVariable','Valeur');

Dans le layout

Code:

<?= $this->MaVariable; ?>

Le layout n'est qu'un cas particulier de ViewModel.

Dernière modification par jfvole (08-03-2013 17:14:06)

Hors ligne

 

#3 08-03-2013 19:09:52

celionor
Nouveau membre
Date d'inscription: 08-03-2013
Messages: 3

Re: Passer une variable au layout [Résolu]

Merci jfvole pour cette réponse rapide, la variable est bien transmise dans mon layout.

Cependant, j'ai une petite question : comment sais-tu qu'il faille mettre $this->layout() ?
Si je souhaite reprendre ton cheminement pour les autres pages, le nom correspond au nom de la page, de la classe, ou autre chose ?

Merci,
Florent

Hors ligne

 

#4 08-03-2013 19:50:00

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Passer une variable au layout [Résolu]

Je n'ai pas retrouvé ou exactement dans les class zend, mais quelque part Zend fait un lien entre le layout de base et ton controller

Ensuite les ViewModel sont ajouté au layout par le render.

Hors ligne

 

#5 10-03-2013 11:34:11

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Passer une variable au layout [Résolu]

Il y a effectivement un plugin de contrôleur permettant de récupérer le layout, et qui s'appelle "layout", d'où le $this->layout() ;-).

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages