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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    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
    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 expérimenté

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    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 actif
    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
    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 émérite

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    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.

  5. #5
    Membre actif
    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
    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 émérite

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    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é

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/05/2013, 13h59
  2. Réponses: 6
    Dernier message: 04/01/2009, 20h37
  3. tutoriel "débuter avec le ZF" et baseUrl
    Par Takis dans le forum Zend Framework
    Réponses: 2
    Dernier message: 04/04/2008, 19h22
  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, 19h46

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