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 ?

1 réponse


billinux
Auteur

Kkun peut il m'aider SVP ?