Fatal error: Call to a member function view() on null in on line 10

Par PKR, il y a 8 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

<?php class Dispatcher{ var $request; function __construct(){ $this->request = new REQUEST(); Router:: parse($this->request->url,$this->request); $controller = $this->loadController(); $controller->view(); } function loadController(){ $name = ucfirst($this->request->controller).'Controller'; $file = ROOT.DS.'controller'.DS.$name.'.php'; require $file; $controller = new $name($this->request); } } ?>

Ce que je veux

"vous voyez" sur ma page

Ce que j'obtiens

Fatal error: Call to a member function view() on null in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Tuto\site\core\Dispatcher.php on line 10

4 réponses

SwithFr, il y a 8 ans

Bonjour,

à ta ligne 10 tu fais :

$controller->view();

Mais ton erreur (qu'il faut lire hein... parce qu'elle est assez claire) te dit que $controller est null et que donc il ne connait pas la méthode view() sur cet objet qui est null. Tu dois donc regarder ta fonction loadController() si tout se passe correctement. Et tu verras rapidement qu'il te manque quelque chose ;)

eltharin, il y a 8 ans

la fonction var_dump est ton ami en debug.
pour tester, tu peux ajouter cette ligne :

$controller = $this->loadController(); var_dump($controller); // va te retourner null mais ne devrait pas. $controller->view();
PKR, il y a 7 ans

merci pour vos reponse si rapide

rueduphp, il y a 7 ans

La méthode loadController devrait retourner le controller, là elle ne retourne rien, d'où l'erreur.