Bonjour,
je découvre l'utilisation de zend framework, je vient de lire un livre de 600 pages dessus et maintenant je passe à la pratique.
J'ai donc dans un 1er temps réussi à faire marcher les vues (pas bien compliqué il faut avouer) mais maintenant je n'arrive pas a utiliser correctement les layouts.
J'ai cherche sur la doc officiel et sur différents forums et je ne voi pas l'erreur de mon code.
Mon cotroller IndexController :
Ma vue correspondante index.phtml (qui fonctionne très bien sans l'utilisation des layouts):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class IndexController extends Zend_Controller_Action { function indexAction() { $this->view->title = "Teste"; $this->view->pageTitre="tata"; } }
Mon script de layout layout.phtml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <h1><?php echo $this->escape($this->title); ?></h1>
Donc sur la page, le titre est correctement inscrit (j'en déduit que ma layout est bien appeler puisque ma variable pageTitre est bien transmise) par contre le code de la vue n'est pas affiché, ni le statique (les balsie <h1>), ni le dynamique (ma variable title).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <html> <head> <title><?php echo $this->escape($this->pageTitre); ?></title> </head> <body> <?php echo $this->layout()->content; ?> </body> </html>
Donc je pense que mon script de vue n'est pas appellé ou que echo $this->layout()->content n'est pas correcte ?
je vous fournit également mon bootstrap (très basique puisque je ne teste que les layouts) au cas ou le problème vienne de la :
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 error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); date_default_timezone_set('Europe/Paris'); // mise en place des répertoires et chargement des classes set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/models/' . PATH_SEPARATOR . get_include_path()); //Les 2 ligne ci-dessous permette l'autoload des classe php include "Zend/Loader.php"; @Zend_Loader::registerAutoload(); // setup controller $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('../application/controllers'); //définititon des layout $options = array( 'layout' => 'layout', 'layoutPath' => '../application/views/layouts', 'contentKey' => 'CONTENT' ); $layout = Zend_Layout::startMvc($options); // run! $frontController->dispatch();
Partager