Salut,
Un grand merci à toi pour les tutos.
Cela fait deux jours que je bloque sur le pb suivant.
Le paramètre ' getMenu' n'est pas reconnu dans la fonction ' request' du controller principal.
Voici le message d'erreur que j'obtiens.
Warning: Invalid argument supplied for foreach() in /path/to/view/layout/default.php on line 83
J'ai testé la variable $pagesMenu , elle est est vide.
Code du layout default.php :
<div id="menu" role="navigation">
<ul id="navigation">
<?php $pagesMenu = $this->request('Pages','getMenu') ; ?>
<?php foreach($pagesMenu as $p): ?>
<li><a href="<?php echo BASE_URL.'/pages/view/'.$p->id ; ?>"
title="<?php echo $p->name; ?>"><?php echo ucfirst($p->name) ; ?></a></li>
<?php endforeach ; ?>
</ul>
</div>
Code du constructeur de la classe ' Controller' :
function __construct($request = NULL) {
if($request){
$this->request = $request ;
}
}
Code de la fonction ' request' du controller principal :
function request($controller,$action) {
$controller .= 'Controller' ;
require_once ROOT.DS.'controller'.DS.$controller.'.php' ;
$c = new $controller() ;
return $c->action ;
// return $c->getMenu() ;
}
Quand je remplace return $c->action par return $c->action() , j'ai cette erreur.
Fatal error: Call to undefined method PagesController::action() in /path/to/core/Controller.php on line 90
N.B : Quand je remplace return $c->action par return $c->getMenu() , cela fonctionne.
Pouvez-vous m'aider svp
Dites-moi ou est l'erreur ?