Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-12-2012 15:18:45

toto_coder
Nouveau membre
Date d'inscription: 22-12-2012
Messages: 4

Problème de formulaire

Bonjour à tous,

Bon voila je viens juste de commencer à utiliser Zend Framework 2 il ya quelques heure. Je suit le tutoriel officiel de leur site. Tout se passsait bien jusqu'a que j'arrive à la création de formulaire. J'ai bien suivit toutes les étapes de la création et pourtant j'ai une erreur au niveau de ma vue :

Catchable fatal error: Object of class Zend\Form\View\Helper\FormHidden could not be converted to string in /var/www/zend/module/Album/view/album/album/add.phtml on line 12

Je ne comprend pas pourquoi j'ai cette erreur. En cherchant un peu de mon coté, je n'ai rien trouvé du tout. Si quelqu'un à une idée, je suis preneur.

Merci d'avance

Hors ligne

 

#2 23-12-2012 21:20:35

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Problème de formulaire

Avec un peu de code ce serait mieux ;-). Vraisemblablement tu sembles appeler l'aide de vue "formHidden" dans ta vue, en lui passant en paramètre un objet qui n'est pas un élément de type Hidden. Mais sans code je ne peux pas t'aider davantage ;-).

Hors ligne

 

#3 24-12-2012 04:22:12

toto_coder
Nouveau membre
Date d'inscription: 22-12-2012
Messages: 4

Re: Problème de formulaire

Bonjour et merci pour ta réponse. Donc voici le code utilisé dans mon controller :

Code:

public function addAction(){
    $form = new AlbumForm();

        $request = $this->getRequest();
        if ($request->isPost()) {
            $album = new Album();
            $form->setInputFilter($album->getInputFilter());
            $form->setData($request->getPost());

            if ($form->isValid()) {
                $album->exchangeArray($form->getData());
                $this->getAlbumTable()->saveAlbum($album);

                // Redirect to list of albums
                return $this->redirect()->toRoute('album');
            }
        }
        return array('form' => $form);
}

et celui utilisé dans la vue associé :

Code:

<?php
    $title = 'Add new album';
    $this->headTitle($title);
?>
<h1><?php echo $this->escapeHtml($title); ?></h1>
<?php
    $form = $this->form;
    $form->setAttribute('action', $this->url('album', array('action' => 'add')));
    $form->prepare();

    echo $this->form()->openTag($form);
    echo $this->formHidden($form->get('id'));
    echo $this->formRow($form->get('title'));
    echo $this->formRow($form->get('artist'));
    echo $this->formSubmit($form->get('submit'));
    echo $this->form()->closeTag();
?>

C'est pourtant exactement le même code que dans le tutoriel officielle, mais pourtant j'ai cette erreur. Merci de ton aide en tout cas wink

Hors ligne

 

#4 24-12-2012 17:52:55

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Problème de formulaire

Bonjour,

Et si tu enlevais le echo devant $this->formHidden($form->get('id')); ? Qu'est ce que ca donne ?

Comme mentionne dans le tutoriel http://framework.zend.com/manual/2.0/en … tions.html
as-tu essayé l'alternative echo $this->formCollection($form); ?

Dernière modification par us2rn4m2 (24-12-2012 18:39:19)

Hors ligne

 

#5 24-12-2012 19:18:03

toto_coder
Nouveau membre
Date d'inscription: 22-12-2012
Messages: 4

Re: Problème de formulaire

Salut et merci pour ta réponse,

J'ai malheureusement déjà essayer de retiré le echo ou bien d'utilisé l'alternative avec formCollection, mais dans les 2 cas, ça ne m'affiche rien.

Hors ligne

 

#6 25-12-2012 01:36:34

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Problème de formulaire

Ok, le tuto je l'ai essayé, il marche et j'ai reussi a reproduire ton erreur.

dans module/Album/src/Album/Form as - tu le fichier AlbumForm.php et si oui regarde si il ne te manque pas quelques instructions.

A commencer par celle ci:
        $this->add(array(
            'name' => 'id',
            'attributes' => array(
                'type'  => 'hidden',
            ),
        ));

Code:

[lang=php]
<?php
// module/Album/src/Album/Form/AlbumForm.php:
namespace Album\Form;

use Zend\Form\Form;

class AlbumForm extends Form
{
    public function __construct($name = null)
    {
        // we want to ignore the name passed
        parent::__construct('album');
        $this->setAttribute('method', 'post');
        $this->add(array(
            'name' => 'id',
            'attributes' => array(
                'type'  => 'hidden',
            ),
        ));
        $this->add(array(
            'name' => 'artist',
            'attributes' => array(
                'type'  => 'text',
            ),
            'options' => array(
                'label' => 'Artist',
            ),
        ));
        $this->add(array(
            'name' => 'title',
            'attributes' => array(
                'type'  => 'text',
            ),
            'options' => array(
                'label' => 'Title',
            ),
        ));
        $this->add(array(
            'name' => 'submit',
            'attributes' => array(
                'type'  => 'submit',
                'value' => 'Go',
                'id' => 'submitbutton',
            ),
        ));
    }
}

Hors ligne

 

#7 25-12-2012 19:34:35

toto_coder
Nouveau membre
Date d'inscription: 22-12-2012
Messages: 4

Re: Problème de formulaire

Salut,

Je viens de trouver d'ou venez mon erreur. En fait lorsque j'ai déclarer mon constructeur dans AlbumForm, dans ma tête j'été entrain de pensé "constructor" mais je l'ai aussi écris comme ça, alors qu'il fallait bien entendu que ce soit "construct" LOL, une erreur bête qui me servira de leçon wink

Merci pour ton aide

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages