Bonjour à toutes et à tous,

Après avoir suivie le bon tuto du jours 4 avec le systeme MVC. Je bloque à la 22 minutes au moment de la pagination.
En effet quand je clique sur une page pour afficher un autre article ce message d'erreur apparais :

Warning: require(C:\wamp\www\try\controller\posts?page=1controller.php) <a href='function.require'>function.require</a>]: failed to open stream: No such file or directory in C:\wamp\www\try\Core\Dispatcher.php on line 27

Fatal error: require() <a href='function.require'>function.require</a>]: Failed opening required 'C:\wamp\www\try\controller\posts?page=1controller.php' (include_path='.;C:\php\pear') in C:\wamp\www\try\Core\Dispatcher.php on line 27

J'ai un peu prêt compris que l'erreur venais d'un mauvais parsing de l'url. Mais je ne comprend pas comment la résoudre.
Quelqu'un a une solution ?

3 réponses


Tu peux mettre le code de ton Dispatcher dans des balises code ?

neohaseo
Auteur
<?php
class dispatcher{
    var $request;
    function __construct(){
        $this->request = new request();
        rooter::parse($this->request->url,$this->request);
        $controller = $this->loadcontroller();
        if(!in_array($this->request->action,array_diff(get_class_methods($controller),get_class_methods('controller')))){
            $this->error('Le controller '.$this->request->controller.' n\'a pas de méthode '.$this->request->action);
        }
        call_user_func_array(array($controller,$this->request->action), $this->request->params);
        $controller->render($this->request->action);
    }
    function error($message){
        $controller = new controller($this->request);
        $controller->e404($message);
    }
    function loadcontroller(){
        $name = $this->request->controller.'controller';
        $file = ROOT.DS.'controller'.DS.$name.'.php';
        require "$file";
        return new $name($this->request);
    }
}
?>

C'est quoi l'url que tu lui passe ?