Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2007, 22h05   #1
Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2005
Messages : 33
Points : 42
Points : 42
Par défaut Erreur avec le Tutoriel Débuter avec Zend Framework

Lors de l'appel a cette vue: C:\Program Files\EasyPHP 2.0b1\www\zf-tutorial\application\views\scripts\index\ajouter.phtml

J'ai cette erreur:
The requested URL /zf-tutorial/index/ajouter was not found on this server.

L'URL est le suivant http://localhost/zf-tutorial/index/ajouter

J'ai suivit a la lettre le Tutoriel par Rob Allen Guillaume Rossolini.

Mon installation est:
Win XP
ZendStudio
EasyPHP 2.0b1 (Apache 2.2.3 - PHP 5.2.0 - MySQL 5.0.27)

Je joint mes sources.

Selon la doc officiel du Framework, le chemin (application\views\scripts\index) semble OK. Je ne comprend plus !!!

Merci de votre aide.

Michel Turcotte
Fichiers attachés
Type de fichier : rar zf-tutorial.rar (4,8 Ko, 13 affichages)
turcotm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 10h03   #2
Membre confirmé
 
Inscription : juin 2005
Messages : 171
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juin 2005
Messages : 171
Points : 214
Points : 214
Bonjour,

Tu ne peux pas appeler une vue directement, tu dois passer par une action d'un controleur, et c'est lui qui va appeler la vue nécessaire.

Si toutefois tu souhaite quand même appeler directement ta vue (à des fin de débogage ou autre...) tu dois exclure l'extension .phtml de la liste des extensions redirigées vers le index.php dans le .htacccess.
aurelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 15h22   #3
Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2005
Messages : 33
Points : 42
Points : 42
Salut Aurelpitiless,

Oui, ca me semble logique. Mais comment expliques tu que j'ai la même erreur quand je passe par le contrôleur? L'indexAction fonctionne parfaitement mais l'ajoutAction, fonctionne pas. Il me donne l'erreur mentionner plus haut.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?php
class IndexController extends Zend_Controller_Action
{
function init()
{
$this->view->baseUrl = $this->_request->getBaseUrl();
Zend_Loader::loadClass('Album');
}
function indexAction()
{
$this->view->title = "Mes albums";
$album = new Album();
$this->view->albums = $album->fetchAll();
}
function ajouterAction()
{
$this->view->title = "Ajouter un nouvel album";
 
if ($this->_request->isPost()) {
Zend_Loader::loadClass('Zend_Filter_StripTags');
$filter = new Zend_Filter_StripTags();
$artist = $filter->filter($this->_request->getPost('artist'));
$artist = trim($artist);
$title = trim($filter->filter($this->_request->getPost('title')));
 
if ($artist != '' && $title != '') {
$data = array('artist' => $artist, 'title' => $title);
$album = new Album();
$album->insert($data);
$this->_redirect('/');
return;
}
}
 
// set up an "empty" album
$this->view->album = $album->createRow();;
 
// additional view fields required by form
$this->view->action = 'ajouter';
$this->view->buttonText = 'Ajouter';
}


Même si je met le code d'ajoutAction identique a indexAction, j'ai les mêmes résultats.

As tu une idée?

Merci

Michel
turcotm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 17h22   #4
Membre éclairé
 
Inscription : juin 2007
Messages : 342
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 342
Points : 398
Points : 398
peu être as tu oublier d'indiquer le chemin dans l'index.php, sans cette définition de route le moteur zend ne peu pas savoir quelle vue et quel controleur choisir.
ascito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 19h13   #5
Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2005
Messages : 33
Points : 42
Points : 42
Salut ascito,

Ma connaissance de la chose, me dit que nous avons pas le choix du path pour les vues, ils doivent être dans ce rep: "\application\views\scripts\".

Le controleur est bien définit ici dans le fichier .\zf-tutorial\index.php:
Code :
1
2
3
4
5
6
 
 // setup controller
 $frontController = Zend_Controller_Front::getInstance();
 $frontController->throwExceptions(true);
 $frontController->setBaseUrl('/mysubdir/zf-tutorial/');
 $frontController->setControllerDirectory('./application/controllers');
Je me trompe? C'est pourtant ce que dit le le tutorial!

Merci

Michel
turcotm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2007, 20h02   #6
Membre éclairé
 
Inscription : juin 2007
Messages : 342
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 342
Points : 398
Points : 398
Code :
1
2
3
4
5
6
7
8
9
10
$router = new Zend_Controller_Router_Rewrite();
 
$cmtRoute = new Zend_Controller_Router_Route(
    "comment/:action/:comment",
    array(  "comment"=>null,
            "controller"=>"comment",
            "action"=>"display"
    )
);
$router->addRoute("comment",$cmtRoute);
en fait si nous parlons du même tuto, (et donc de la version de la même techno), une route se défini à cet endroit, et justifie le routage du site. Expliquons : si l'url ne correspond pas à une route défini, alors la page par défault sera affiché
ascito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 21h30   #7
Membre du Club
 
Inscription : décembre 2007
Messages : 94
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 94
Points : 40
Points : 40
J'ai également une erreur dans cette fonction :

Notice: Undefined variable: album in F:\Site Web\xampp\htdocs\zf-tutorial\application\controllers\IndexController.php on line 43

Fatal error: Call to a member function createRow() on a non-object in F:\Site Web\xampp\htdocs\zf-tutorial\application\controllers\IndexController.php on line 43

42. // set up an "empty" album
43. $this->view->album = $album->createRow();
PseT34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 23h39   #8
Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2005
Messages : 33
Points : 42
Points : 42
Salut ascito,

Je ne crois pas qu'on parle de la même chose. Désolé.

J'ai toujour pas trouver le problème.

Salut PseT34,

Tu es plus loin que moi dans la doc non? Tu as pas euce problème en amont? Tu as été capable dans une étape précédente de faire un ajout?

@+

Michel
turcotm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 09h39   #9
Membre du Club
 
Inscription : décembre 2007
Messages : 94
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 94
Points : 40
Points : 40
Non je n'ai pas eu l'erreur que tu rencontres.

La modification fonctionne, mais pas l'ajout, j'ai cette Notice + l'erreur.

Je ne comprend pas pourquoi!
PseT34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2008, 11h39   #10
Invité régulier
 
Étudiant
Inscription : janvier 2008
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 10
Points : 6
Points : 6
Par défaut salut a tous

Je viens de commencer avec le tutorial "Debuter avec les Zend framework" de Rob Allen, et j' ai le meme probleme que turtcom. J'aimerai savoir comment vous avez resolu ce probleme?Merci.
azizmahamat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 12h20   #11
Invité régulier
 
Inscription : août 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 18
Points : 8
Points : 8
Citation:
Envoyé par azizmahamat Voir le message
Je viens de commencer avec le tutorial "Debuter avec les Zend framework" de Rob Allen, et j' ai le meme probleme que turtcom. J'aimerai savoir comment vous avez resolu ce probleme?Merci.
Moi aussi j'ai le même problème, je me demande si c de la version du framework
j'utilise la 1.0.3 et c'est écris sur le tuto
Citation:
Vous devez utiliser la version 0.9 pour
pouvoir profiter de ce tutoriel.
Si c'est ça la faute j'ai pa trouvé cette version de framework si kelk'un l'a sur son poste
Merci
Nessma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 13h02   #12
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
Ce n'est pas un problème de version, puisque d'autres ont réussi. Reprenez le tutoriel depuis le début, pas à pas, respectez bien la structure des répertoires, et reprenez le code du tutoriel en essayant de le comprendre.

Ce n'est pas magique, il y a une raison si votre code ne fonctionne pas. Les problèmes de chemin sont courants, et c'est parfois très chiant à corriger, mais il faut être patient.

Pour corriger une grosse erreur : pas besoin de faire de routeur à ce niveau, ZF dirige automatiquement vers le bon controlleur dans ce cas : si on a une URL du type : http://www.lesite.org/Album/ajouter, ZF va de lui même appeler la méthode ajouterAction du controlleur Album, sans routeur.

Bonne chance et bon courage.
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 15h21   #13
Invité régulier
 
Étudiant
Inscription : janvier 2008
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 10
Points : 6
Points : 6
Par défaut j'ai resolu le probleme

le probleme est au niveau du fichier http.conf. si vous utiliser xampp, à la ligne 118, enlever le commentaire.Sinon allez dans http.conf enlever le # de la ligne de mod_rewrite.
azizmahamat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 15h57   #14
Invité régulier
 
Inscription : août 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 18
Points : 8
Points : 8
Citation:
Envoyé par azizmahamat Voir le message
le probleme est au niveau du fichier http.conf. si vous utiliser xampp, à la ligne 118, enlever le commentaire.Sinon allez dans http.conf enlever le # de la ligne de mod_rewrite.

t'as solution a donné un résultat mieux que le mien mais bon toujours ça fonctionne pas
pour les liens
http://localhost/zf-tutorial/index/ajouter et les autres avant il me dis que les pages sont non trouvé mais maintenant la page existe mais avec des erreurs tout comme index.php

Citation:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (ajouter)' in C:\Program Files\EasyPHP 2.0b1\www\zf-tutorial\library\Zend\Controller\Dispatcher\Standard.php:198 Stack trace: #0 C:\Program Files\EasyPHP 2.0b1\www\zf-tutorial\library\Zend\Controller\Front.php(929): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\Program Files\EasyPHP 2.0b1\www\zf-tutorial\index.php(18): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\Program Files\EasyPHP 2.0b1\www\zf-tutorial\library\Zend\Controller\Dispatcher\Standard.php on line 198
ce code d'erreur par exemple pour l'action ajouter
Nessma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 17h35   #15
Invité régulier
 
Étudiant
Inscription : janvier 2008
Messages : 10
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2008
Messages : 10
Points : 6
Points : 6
Nessma, ce message d'erreur ne peut etre que probleme de configuration.essaye de revoir le configuration d'apache.
azizmahamat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2008, 20h09   #16
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
De configuration Apache ?

C'est un message d'erreur de Zend, qui dit ne pas trouver un controlleur dénommé "ajouter". C'est compréhensible comme message. Déjà, les noms des controlleurs doivent débuter par une majuscule et ne contenir qu'une majuscule, donc celle du début. Par conséquent, si tu souhaites accéder au controlleur Index, tu dois faire : http://localhost/zf-tutorial/Index/ajouter sinon tu as une erreur.

Bonne chance.
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 02h20   #17
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Attention, il n'y a pas de majuscule dans l'URL. Par ailleurs, le tutoriel stipule très clairement que des erreurs sont attendues à certains moments.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2008, 21h41   #18
Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : août 2005
Messages : 33
Points : 42
Points : 42
Bonjour a tous,

Il suffit seulement d'ajouter "$frontController->setBaseUrl();" dans l'index.php. Comme le stipule le tutoriel. Ca dépend de la config du serveur.

Merci

Michel
turcotm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 12h33   #19
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 27
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 27
Points : 18
Points : 18
Salut à tous,

Je viens de faire le tutoriel et je suis tombé sur la même erreur que l'auteur de ce post.

J'ai regardé la version anglaise de cet article, notamment la ligne 44 du fichier IndexController et on note effectivement une erreur dans l'article français.

Code :
1
2
3
Article francais : 
        // set up an "empty" album
        $this->view->album = $album->createRow();;
Code :
1
2
3
4
Article anglais
        // set up an "empty" album
        $album = new Album();
        $this->view->album = $album->createRow();
Une fois le ";" en trop viré, et l'instanciation de l'objet Album faite, tout fonctionne parfaitement.
Archeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h58.


 
 
 
 
Partenaires

Hébergement Web