MVC - inclure une vue dans une autre?
Posté : 14 déc. 2013, 11:53
Bonjour à tous,
J'ai conçu un MVC en suivant le tuto du site http://www.grafikart.fr/tutoriels/index/php?page=3.
Tout fonctionne bien, j'ai réalisé le tuto jusqu'au bout.
La question que je me pose concerne la page d'accueil de mon site.
Actuellement elle est gérée comme toutes les autres pages, pourtant c'est une page un peu "spéciale": je souhaite en effet qu'elle contienne un div reprenant les dernières news.
Ces news, je les gère déjà via un controller PostsController, et une vue index.php.
En gros, j'ai donc cette arborescence:
/controller
* PagesController.php
* PostsController.php
/view
/pages
* view.php
/posts
* index.php
Mon idée de départ, c'était de mettre ceci dans view.php:
Mais ce semble pas fonctionner puisque j'ai 2 erreurs:
Warning: include_once(posts/index.php): failed to open stream: No such file or directory in ....
Warning: include_once(): Failed opening 'posts/index.php' for inclusion (include_path='.;C:\wamp\bin\php\php5.4.16\pear;') in ...
Ma question est donc, en MVC, est-il possible d'inclure une vue dans une autre vue?
Et si non, comment raisonner pour résoudre mon problème?
D'avance merci!
J'ai conçu un MVC en suivant le tuto du site http://www.grafikart.fr/tutoriels/index/php?page=3.
Tout fonctionne bien, j'ai réalisé le tuto jusqu'au bout.
La question que je me pose concerne la page d'accueil de mon site.
Actuellement elle est gérée comme toutes les autres pages, pourtant c'est une page un peu "spéciale": je souhaite en effet qu'elle contienne un div reprenant les dernières news.
Ces news, je les gère déjà via un controller PostsController, et une vue index.php.
En gros, j'ai donc cette arborescence:
/controller
* PagesController.php
* PostsController.php
/view
/pages
* view.php
/posts
* index.php
Mon idée de départ, c'était de mettre ceci dans view.php:
<?php
if ($page->id == 1){
include_once('posts/index.php');
}
?>
et donc d'inclure une vue, dans une autre vue.Mais ce semble pas fonctionner puisque j'ai 2 erreurs:
Warning: include_once(posts/index.php): failed to open stream: No such file or directory in ....
Warning: include_once(): Failed opening 'posts/index.php' for inclusion (include_path='.;C:\wamp\bin\php\php5.4.16\pear;') in ...
Ma question est donc, en MVC, est-il possible d'inclure une vue dans une autre vue?
Et si non, comment raisonner pour résoudre mon problème?
D'avance merci!