Symfony - Форма не отправлена - PullRequest
       11

Symfony - Форма не отправлена

1 голос
/ 23 октября 2019

Я работаю с Symfony, чтобы создать и отправить контактную форму по почте. Я использую swiftMailer.

Проблема в том, что моя форма не отправлена. Итак, мой swiftmailer не может работать, потому что isSumbmitted останется в false, а $ mailer-> send (message) не будет активирован

Мой контроллер:

public function index (Request $request, Swift_Mailer $mailer)
    {

        $form = $this->createForm(ContactType::class);
        $form->handleRequest($request);

        if($form->isSubmitted() && $form->isValid()) { 
            $contactData = $form->getData();
            $name = $contactData['name'];
            $content = $contactData['message'];
            $email = $contactData['email'];
            $entreprise = $contactData['entreprise'];
            $zip = $contactData['zip'];


            $message = (new Swift_Message('Vous avez un nouveau message sur le site AMC Industrie.fr'))
                ->setFrom('test@example.com')
                ->setTo('test@gmail.com')
                ->setSubject('Demande d\'information')
                ->setCharset('utf-8')
                ->setContentType('text/html')
                ->setBody(
                    "
                    <p> Vous avez reçu un message de <strong>$name</strong>, de l'entreprise <strong>$entreprise</strong>
                    <br>(code postal : $zip ) <br>
                    Son email est : <strong>$email</strong>. </p>

                    <p> Son message :</p>
                    <p>$content
                    </p>
                    "
                )
            ;

            $mailer->send($message);

            return $this->redirectToRoute('map_contact');
        }

        return $this->render('contact/map_contact.html.twig', [
            'form' => $form->createView()
        ]);
    }

Моя форма:

    {
        $builder
            ->add('name',TextType::class, 
                ['label'=>false,
                'constraints' => new NotBlank,
                'attr' => [
                    'class'=> 'form-control',
                    'placeholder' => 'Nom et prénom',
                    ]
                ])

            ->add('email',EmailType::class, 
                ['label'=>false,
                'constraints' => new NotBlank,
                'attr' => [
                    'class' => 'form-control',
                    'placeholder' => 'adresse e-mail' 
                    ]
                ])
            ->add('entreprise',TextType::class,
            ['label'=>false,
                'constraints' => new NotBlank,
                'attr' => [
                    'class'=> 'form-control',
                    'placeholder' => 'Nom de votre entreprise'
                    ]
                ])
            ->add('zip',NumberType::class,
            ['label'=>false,
                'constraints' => new NotBlank,
                'attr' => [
                    'class'=> 'form-control',
                    'placeholder' => 'Code postal'
                    ]
                ])
            ->add('message',TextareaType::class,
            ['label'=>false,
                'constraints' => new NotBlank,
                'attr' => [
                    'class'=> 'form-control',
                    'placeholder' => 'Décrivez-nous votre projet'
                    ]
                ])
            ->add('save', SubmitType::class, 
            ['label' => 'Envoyer', 
                'attr'=> [
                    //'class' => 'waves-effect waves-light btn-large btn btn-primary mt-1 mb-5 lift',
                    'id' => 'form-submit'
                ]])

        ;
    }

Мой шаблон:

<form>
              {{ form_start(form) }}
                    <div class="row">
                        <div class="col-12 col-md-6">
                            <div class="form-group mb-5">
                                {{form_label(form.name, 'Nom et prénom')}}
                                {{form_widget(form.name)}}

                            </div>
                        </div>

                        <div class="col-12 col-md-6">
                            <div class="form-group mb-5">                      
                                {{form_label(form.email, 'Email') }}
                                {{form_widget(form.email)}}
                            </div>
                           <div class="col-12 col-md-6">
                                <div class="form-group mb-5">
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-12 col-md-6">
                            <div class="form-group mb-5">
                                {{form_label(form.entreprise, 'Entreprise')}}
                                {{form_widget(form.entreprise)}}
                            </div>
                        </div>

                        <div class="col-12 col-md-6">
                            <div class="form-group mb-5">
                                {{form_label(form.zip, 'Code Postal')}}
                                {{form_widget(form.zip)}}
                            </div>
                            <div class="col-12 col-md-6">
                                <div class="form-group mb-5">  
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-12">
                            <div class="form-group">
                                {{form_label(form.message, 'Comment pouvons-nous vous aider ?')}}
                                {{form_widget(form.message)}}
                            </div>
                        </div>
                    </div> <!-- / .row -->

                    <div class="row justify-content-center">
                        <div class="col-auto py-5">
                            <!-- Submit -->
                            <div>
                             {{form_widget(form.save)}}   
                            </div>
                        </div>
                    </div> 

                {{ form_end(form) }}
                </form>

Мой инструмент отладки: Форма в параметре get OK. У меня есть все мои входные данные с информацией.

Инструмент отладки - получить параметры:

screenshot debug tool

НО нет данных для передачи. form is not submit

инструмент отладки - форма не отправлена:

screenshot debug tool

Я не понимаю, где моя проблема.

1 Ответ

0 голосов
/ 23 октября 2019

Хорошо, это решено!

Проблема: у меня уже есть HTML-баланс для моей формы, в моем шаблоне. Когда я удаляю, все нормально!

...