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_Form PHP Discussion :

Erreur avec MVC


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Par défaut Erreur avec MVC
    Voici mon erreur : Fatal error: Using $this when not in object context

    Je sais bien que '$this' appartient à une autre méthode de classe.

    Voici mes fichiers :

    IndexController.php
    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
    <?php
    require 'Zend/Loader.php';
    class IndexController
    {
        function ajouterAction()
            {
                $this->view->title = "Ajouter un nouvel album";
                $form = new FormulaireClient();
                $form->submit->setLabel('Ajouter');
                $this->view->form = $form;
     
                if ($this->_request->isPost()) {
                    $formData = $this->_request->getPost();
                    if ($form->isValid($formData)) {
                        $albums = new Albums();
                        $row = $albums->createRow();
                        $row->artist = $form->getValue('artist');
                        $row->title = $form->getValue('title');
                        $row->save();
     
                        $this->_redirect('/');
                    } 
                    else
                        {
                        $form->populate($formData);
                        }
                }
     
            }
     
    }
    ?>
    FormulaireClient.php

    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
    <?php
    require 'Zend/Loader.php';
    Zend_Loader::loadClass('Zend_Form');
     
    class FormulaireClient extends Zend_Form
    {
     
        public function __construct($options = null)
        {
     
            parent::__construct($options);
            $this->setName('album');
     
            $id = new Zend_Form_Element_Hidden('id');
     
            $artist = new Zend_Form_Element_Text('artist');
            $artist->setLabel('Artist')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
     
            $title = new Zend_Form_Element_Text('title');
            $title->setLabel('Title')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
     
            $submit = new Zend_Form_Element_Submit('submit');
            $submit->setAttrib('id', 'submitbutton');
     
            $this->addElements(array($id, $artist, $title, $submit));
     
     
        }
    }
    ?>
    Ajouter.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
           echo $this->form ;
    ?>
    Si quelqu'un pouvait m'expliquer comment faire afin que je puisse afficher mon formulaire je serais trop content

    Merci d'avance les amis

  2. #2
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par défaut
    pour t'aider, il faudrait qu'on sache sur quelle ligne ca plante, ca éviterait de devoir se palucher chaque linge

    a prior je pense que ca doit etre ailleur, genre dans ton boostrap, ou autre : cf le msg d'erreur : c'est en dehors d'une classe...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Par défaut
    Voici l'erreur :

    Fatal error: Using $this when not in object context

    Elle se trouve sur le ficher ajouter.phtml , il ne trouve pas le $this

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    As-tu d'autres actions dont la vue fonctionne correctement ?

    Comment accèdes-tu à ton formulaire (url) ?

    Avec ce que tu donnes, je ne vois pas d'où peut venir l'erreur...

  5. #5
    Membre Expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Par défaut
    Oui, je pense que l'erreur vient plutôt d'autres choses ! Cela voudrait dire que la vue n'a pas été instancié et que tu lances ce fichier tel quel.

    Alors y a-t-il d'autres vues qui fonctionnent ? (Je pense que non)

    Peut-on voir le bootstrap, s'il te plait ?

    Merci
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  6. #6
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    ce n'est peut-être pas le seul problème dans ton code, mais déjà il serait bien que IndexController descende de Zend_Controller_Action...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class IndexController extends Zend_Controller_Action
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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