Salut tous le monde j'ai un problème dans mon MVC lorsque je met ce code dans mon controller

if(strpos($view, '/')==0){
                $view = ROOT.DS.'view'.$view.'.php';
            }else{
                $view = ROOT.DS.'view'.DS.$this->request->controller.DS.$view.'.php';
            }

la page d'erreur sa marche mais lorsque j'aller dans le controller de la pages d'index il me donne cette erreur
Warning: require(C:\wamp\www\mvc4\viewindex.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\mvc4\core\Controller.php on line 23
donc le test else sa marche par parce qu'il cherche toujours du slash même si je le mettre pas a mon lien
Merci de mon répondre

9 réponses


Deuxieme ligne il manque un DS

vous pouvez mettre le code svp de la Deuxieme ligne ou il manque cette DS exactement ?

Non :)
Non mais sérieusement le mieux est de chercher soit même, la pour le coup l'erreur est vraiment bien expliqué par l'alarming PHP :

require(C:\wamp\www\mvc4\viewindex.php
//devrait être
require(C:\wamp\www\mvc4\view\index.php

non c'est pas le probléme le que il reste tjr dans le if care il pense que je met une slash devant le nom de view

$this->render("index");

c'est le code de render de la page d'index si je change le valeur de strpos() ==0 vers strpos() == 1
la page d'index sa marche bien mais la page d'erreur ne marche pas dans ce cas je pense que le problème et dans le test if()
Merci pour votre aide

Je ne crois pas encore une fois l'erreur parle d'elle même...
Votre script cherche un fichier qui n'existe pas, il essaye d'afficher le fichier viewindex.php
Après qu'il y est un problème ailleurs, peut être je ne connais pas le tuto dont est issu ce code, mais en tout cas déjà corrigé la ligne deux tel que devrait résoudre l'erreur affichée. Pour la suite on voit après résolution de cette erreur.

$view = ROOT.DS.'view'.DS.$view.'.php';

mais dans il n'existe pas une page index dans le view la page existe dans le controller page donc dans le chemin suivant
view/page/index.php
comme j'ai fait dans la 2eme ligne comme vous regarder
Merci pour votre aide Monsieur revlam

Attendez je ne comprend plus votre truc.
Le fichier view/page/index.php n'existe pas ?
Avez fait la modif que j'ai mis ci-dessus ? Si oui quel est le nouveau message d'erreur sinon faite la ! :)

oui je fait le modification et voici le message d'erreur
Warning: require(C:\wamp\www\mvc4\view\index.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\mvc4\core\Controller.php on line 23

Fatal error: require() [function.require]: Failed opening required 'C:\wamp\www\mvc4\view\index.php' (include_path='.;C:\php5\pear') in C:\wamp\www\mvc4\core\Controller.php on line 23

parce que si vous regarder ce code

$view = ROOT.DS.'view'.DS.$this->request->controller.DS.$view.'.php';

vous regarder que entre le /view et /index.php un controller qui l'envoyer a traver le lien comme ca :
http://localhost/mvc4/page
donc le view = C:\wamp\www\mvc4\view\page\index.php
donc si vous regarder bien il reste tjr dans if(){} il entre pas de else qui contient le lien du controller
vous voyez maintenant ?

Bah il faut créer la vue index.php ?!