IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Erreur avec le Tutoriel Débuter avec Zend Framework


Sujet :

Zend Framework PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 52
    Points
    52
    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 Fichiers attachés

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    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.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 52
    Points
    52
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    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.
    Conception / Dev

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 52
    Points
    52
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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é
    Conception / Dev

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 94
    Points : 74
    Points
    74
    Par défaut
    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();

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 52
    Points
    52
    Par défaut
    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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 94
    Points : 74
    Points
    74
    Par défaut
    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!

  10. #10
    Futur Membre du Club
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 8
    Points
    8
    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.

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    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
    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

  12. #12
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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.

  13. #13
    Futur Membre du Club
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 8
    Points
    8
    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.

  14. #14
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    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

    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

  15. #15
    Futur Membre du Club
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Nessma, ce message d'erreur ne peut etre que probleme de configuration.essaye de revoir le configuration d'apache.

  16. #16
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    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.

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 37
    Points : 52
    Points
    52
    Par défaut
    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

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Article francais : 
            // set up an "empty" album
            $this->view->album = $album->createRow();;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/05/2013, 14h59
  2. Réponses: 6
    Dernier message: 04/01/2009, 21h37
  3. tutoriel "débuter avec le ZF" et baseUrl
    Par Takis dans le forum Zend Framework
    Réponses: 2
    Dernier message: 04/04/2008, 20h22
  4. Problème avec le Tutoriel Débuter avec Zend Framework
    Par ZIED dans le forum Zend Framework
    Réponses: 4
    Dernier message: 21/12/2007, 20h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo