Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je suis débutant en Zend, j ai suivi les recommendations du tutorial http://g-rossolini.developpez.com/tutor … k/debuter/
Donc j ai fait le fichier index.php, le .htaccess, et le controlleur(avec un echo dans les methodes).
Or, lorsque je lance l'appli, j'obtiens le message suivant:
Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'index/index.phtml' not found in path (.\application\views\scripts\)' in C:\Program Files\wamp\www\essai\library\Zend\View\Abstract.php:856 Stack trace: #0 C:\Program Files\wamp\www\essai\library\Zend\View\Abstract.php(764): Zend_View_Abstract->_script('index/index.pht...') #1 C:\Program Files\wamp\www\essai\library\Zend\Controller\Action\Helper\ViewRenderer.php(742): Zend_View_Abstract->render('index/index.pht...') #2 C:\Program Files\wamp\www\essai\library\Zend\Controller\Action\Helper\ViewRenderer.php(763): Zend_Controller_Action_Helper_ViewRenderer->renderScript('index/index.pht...', NULL) #3 C:\Program Files\wamp\www\essai\library\Zend\Controller\Action\Helper\ViewRenderer.php(810): Zend_Controller_Action_Helper_ViewRenderer->render() #4 C:\Program Files\wamp\www\essai\library\Zend\Controller\Action\HelperBroker.php(160): Zend_Controller_Action_Helper_ViewRenderer->postDispatch() #5 C:\Program Files\wamp\www\essai\library\Zend\Controller\Actio in C:\Program Files\wamp\www\essai\library\Zend\View\Abstract.php on line 856
Est ce que quelqu'un pourrait me dire d'ou provient cette erreur.
merci
Hors ligne
Est-ce que tu peux nous envoyer ton IndexController.php et l'arbo de ton site ?
A+, Philippe
Edit : ma réponse était un peu rapide...
Dernière modification par philippe (11-07-2007 12:00:56)
Hors ligne
arbo:
essail/
/application
/controllers
/models
/views
/filters
/helpers
/scripts
/library
/public
/images
/scripts
/styles
controller
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');
set_include_path('.' . PATH_SEPARATOR . './library'
. PATH_SEPARATOR . './application/models/'
. PATH_SEPARATOR . get_include_path());
include "Zend/Loader.php";
Zend_Loader::loadClass('Zend_Controller_Front');
// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');
// run!
$frontController->dispatch();
Hors ligne
Dans ton répertoire views/scripts, le ZF cherche un sous-répertoire /index/ où serait stocké ton index.phtml. Relis bien le tuto, Rob Allen (ou son traducteur) explique pourquoi. Le chemin est dynamiquement reconstruit à partir des paramètres de l'url.
Donc si ton index.phtml est directement dans le répertoire scripts, il est normal qu'il ne soit pas trouvé et déclenche l'exception.
Hors ligne
Pourtant j'ai l'impression d'avoir bien suivi le tuto
Mais qu'est ce que je dois faire pour que cela fonctionne alors?
Hors ligne
Comme indiqué dans le tutorial :
Si tu as un contrôleur Index (IndexController), tu dois avoir :
- un répertoire /application/view/script/index/
Si dans ton Contrôleur Index, tu as une action index (indexAction), tu dois avoir :
- un fichier /application/view/script/index/index.phtml
C'est le comportement par défaut du Helper ViewRenderer.
Hors ligne
dans views/scripts/index tu as bien un fichier index.phtml ?
sinon est-ce que tu peux m'envoyer ton IndexController.php (pas le index.php, le controlleur) ?
Hors ligne
j ai pas de repertoire index dans views/scripts/
voila le controller
<?php
class IndexController extends Zend_Controller_Action{
function indexAction(){
echo "<p>dans IndexController::indexAction()</p>";
}
}
Hors ligne
j en ai cré un mais ca affiche toujours la meme erreur
Hors ligne
il faut que je cré aussi le fichier index.phtml?
Hors ligne
oui : a moins de désactiver le ViewRenderer, le ZF va systématiquement chercher le fichier :
.../views/scripts/controller_name/action_name.phtml
Si tu veux désactiver le viewRenderer (dans ce cas le ZF se contente d'afficher ton "echo...") tu peux ajouter dans ton index.php :
$controller->setParam("noViewRenderer",true);
Il n'ira plus chercher le index.phtml...
A+, philippe
Hors ligne
ok merci à tous.
Hors ligne
Bon écouter je ne comprend pas tout, je respecte le tutorial, mais ce n'est écrit nul part qu'il faut rajouter des repertoire et des fichiers .phtml dans le repertoire script.
J ai donc essayé le $controller->setParam("noViewRenderer",true);
mais ca me retourne une erreur
j'obtiens l erreur suivante:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (ajouter)' in C:\Program Files\wamp\www\essai\library\Zend\Controller\Dispatcher\Standard.php:193 Stack trace: #0 C:\Program Files\wamp\www\essai\library\Zend\Controller\Front.php(911): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\Program Files\wamp\www\essai\index.php(18): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\Program Files\wamp\www\essai\library\Zend\Controller\Dispatcher\Standard.php on line 193
car mon fichier controller est
<?php
class IndexController extends Zend_Controller_Action{
function indexAction(){
echo "<p>dans IndexController::indexAction()</p>";
}
function ajouterAction(){
echo "<p>dans IndexController::ajouterAction()</p>";
}
function modifierAction(){
echo "<p>dans IndexController::modifierAction()</p>";
}
function supprimerAction(){
echo "<p>dans IndexController::supprimer()</p>";
}
}
Est ce que c est le tuto qui est faux ou quoi?
je ne comprend plus rien
Hors ligne
Le tuto fonctionne parfaitement, mais il ne faut sauter aucune étape. Je l'ai moi-même réalisé et tout est parfaitement opérationnel. Donc à priori tu as sauté une ligne ou deux quelque part et oublié un point.
Schématiquement : tu as un fichier IndexController auquel correspond un répertoire views/scripts/index dans lequel tu auras les vues qui concernent l'IndexController. Donc dans ce répertoire, tu auras index.phtml, ajouter.phtml, modifier.phtml et supprimer.phtml. En programmation plus classique, ça correspondrait aux templates si tu préfères.
Toujours en suivant ce tuto, à la racine du répertoire views/scripts/, tu auras deux fichiers : header.phtml et footer.phtml qui serviront pour chaque vue de page et tu auras une ligne au début + une à la fin de chaque fichier de vue allant chercher l'en-tête et le pied de page.
Prends ça relax. N'hésite pas à tout reprendre à zéro en t'efforçant d'en comprendre la raison d'être de chaque détail.
Hors ligne
oui ce que tu dis je l ai fait maintenant, mais dans la premiere partie du tuto qd il te dit de tester et que cela va marché, ca ne marche pas car il n'a pas préciser qu'il fallait mettre des fichiers .phtml et un dossier index.
Maintenant que j'ai fait cela, la page pour index.phtml fonctionne mais les autres non.
C est quand meme bizarre non?
Hors ligne
si quelqu'un à une archive de base qui fonctionne j aimerai bien voir si cela marche chez moi!
Hors ligne
j ai le même probléme que http://www.z-f.fr/forum/viewtopic.php?pid=1254#p1254
Hors ligne
Je t'ai répondu dans le thread http://www.z-f.fr/forum/viewtopic.php?id=249
A+, Philippe
Hors ligne
Bonjour à toi mathieu,
Plutôt qu'un long discours, avec tout ce qui as déjà été dis.
Est-ce que tu pourrais mettre à disposition tes sources en .zip ou .rar.
Que l'on puisse tester si ça fonctionne chez nous ?
@++
Hors ligne
ok je vous fait ca ce soir
Hors ligne
Salut;
J'ai exactement le même problème avec le tutorial de developpez.com avec la mise à jour : 5 juin 2007.
J'ai utilisé la librairie de zf 1.0.1.
J'avais le message d'erreur signalé tout au début par Mathieu.
J'ai changé zf-tutorial/index.php par zf-tutorial/index.phtml ainsi que IndexController.php par IndexController.phtml. J'ai eu alors accès à l'arborescence et plus le message d'erreur initial.
Mais j'ai le message d'erreur suivant lorsque je souhaite acceder à http://localhost/zf-tutorial/index/ajouter :
Not Found
The requested URL /zf-tutorial/index/ajouter was not found on this server.
Au lieu de : dans IndexController::ajouterAction()
Pareil pour modifier et supprimer.
Je signale qu'il y a une différence entre le tutoriel original en anglais dont voici le lien et sa traduction en français au niveau de IndexController.php. Les fonctions sont vides dans l'original en anglais.
http://akrabat.com/wp-content/uploads/g … rk_143.pdf
L'autre différence c'est que le tableau de la page 6 où il y a le code d'IndexController, il n'y a à la place du titre de la colonne "texte affiché" le titre de colonne "action". Dans les pages qui suivent il y a d'autres différences entre les versions anglaise et française.
Dernière modification par cirtey (31-07-2007 22:49:25)
Hors ligne
bonjour,
ton zf-tutorial/index.php et ton IndexController.php doivent rester en .php
quand il recherche index/index.phtml, le ZF recherche ta vue que tu dois mettre dans
views/scripts/index/index.phtml
avec le répertoire views au même niveau que ton répertoire controller/
A+, Philippe
Hors ligne
Pages: 1