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

Symfony PHP Discussion :

Problème formulaire avec symfony [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut Problème formulaire avec symfony
    Bonjour,

    J'ai développé une page contact sous symfony mais lorsque je veux accéder à cette page j'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variable "form" does not exist in frontOfficeBundle:Contact:contact.html.twig
    j'ai pas pu la résoudre.

    Mon controlleur est le suivant :

    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
    43
    <?php
     
    namespace frontOffice\frontBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use frontOffice\frontBundle\Entity\Contact;
    use frontOffice\frontBundle\Form\ContactType;
     
    class ContactController extends Controller
    {
        public function indexAction()
        {
            return $this->render('frontOfficeBundle:Contact:contact.html.twig');
        }
     
     
        public function sendAction()
        {
           $contact = new Contact();
     
           $form = $this->createForm(new ContactType(),$contact);
     
           $_REQUEST = $this->getRequest();
     
           if($_REQUEST->isMethod('Post')){
               $form->bind($_REQUEST);
     
               if($form->isValid()){
     
                   $contact = $form->getData();
     
                   $em = $this->getDoctrine()->getManager();
                   $em->persist($contact);
                   $em.flush();
     
                   return $this->redirect($this->generateUrl('front_office_send'));
               }
           }
     
            return $this->render('frontOfficeBundle:Contact:contact.html.twig', array('form'=>$form->createView()));
        }
    }
    Mon ContactType est :

    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
    43
    <?php
     
    namespace frontOffice\frontBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
     
    class ContactType extends AbstractType
    {
            /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('nom')
                ->add('email')
                ->add('tel')
                ->add('sujet')
                ->add('message')
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'frontOffice\frontBundle\Entity\Contact'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'frontoffice_frontbundle_contact';
        }
    }
    et ma page est comme ceci

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    {% extends"frontOfficeBundle::layoutheader.html.twig" %}
     
     
    {% block container %}
     
     
     <form  class="form-light mt-20" role="form" method="post" action="{{ path('front_office_send') }}">
     
                                <div class="form-group">
                                    <label>Nom</label>
                                    {{ form_widget(form.nom) }}
     
                                </div>
                                <div class="row">
                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label>Adresse électronique &nbsp;</label>
                                            {{ form_widget(form.email) }}
     
                                        </div>
                                    </div>
                                    <div class="col-md-6">
                                        <div class="form-group">
                                            <label>Téléphone</label>
                                            {{ form_widget(form.tel) }}
     
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label>Sujet &nbsp;</label>
                                    {{ form_widget(form.sujet) }}
     
                                </div>
                                <div class="form-group">
                                    <label>Message&nbsp;</label>
                                    {{ form_widget(form.message) }}
     
                                </div>
                                <div class="row">
                                    <div class="col-md-6">
                                        <button type="reset" class="btn btn-light">Annuler</button>
                                    </div>
                                    <div class="col-md-6">
     
                                        {{ form_widget(form._token) }}
                                        <button  type="submit" class="btn btn-base btn-icon btn-icon-right btn-fly pull-right">
                                            <span>Envoyer message</span>
                                        </button>
                                    </div>
                                </div>
                            </form>
    Mon routing est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    front_office_send:
         path:     /Contact
         defaults: { _controller: frontOfficeBundle:Contact:send }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Je trouve l'erreur très claire, il ne trouve pas la variable form de ton contact.html.twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function indexAction()
        {
            return $this->render('frontOfficeBundle:Contact:contact.html.twig', ici il n'y a pas de parametre form);
        }

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Points : 443
    Points
    443
    Par défaut
    Oui ça marche merci

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/06/2011, 16h19
  2. Problème formulaire avec bouton Radio
    Par SwatAgent dans le forum ASP
    Réponses: 1
    Dernier message: 23/10/2010, 16h35
  3. [1.x] Formulaire avec symfony
    Par hach22_2 dans le forum Symfony
    Réponses: 19
    Dernier message: 01/08/2010, 21h53
  4. problème formulaire avec checkbox
    Par toinou62 dans le forum Langage
    Réponses: 1
    Dernier message: 30/09/2007, 14h07
  5. [Spring MVC] Problème formulaire avec Collection
    Par arN34 dans le forum Spring Web
    Réponses: 1
    Dernier message: 16/09/2006, 13h17

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