Создать простую форму с Symfony - PullRequest
0 голосов
/ 06 июля 2018

Я схожу с ума от очень простой вещи! Я просто хочу сделать небольшую форму с одним полем ввода текста и кнопкой проверки и получить значение, введенное пользователем. И это не работает. Абсолютно сумасшедший ... Я уверен, что это очень маленькая вещь, но я не могу ее решить!

Вот мой код:

<?php

namespace PublicBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

/**
 * Description of AccountRecoveryController
 *
 */
class AccountRecoveryController extends Controller {

    /**
    * 
    * @Route("/account_recovery", name="account_recovery")
    */
    function accountRecoveryAction(Request $request){

        $form = $this->createFormBuilder()
            ->add('username', TextType::class, array(
                    'label' => 'Adresse e-mail', 
                    'attr'  => array('placeholder' => 'E-MAIL'),
                    'mapped' => false
                    ))
                ->add('submit', SubmitType::class, array(
                    'label' => 'Submit'
                    ))
            ->getForm();

        $form->handleRequest($request);

        if ($form->isSubmitted()){
            echo 'ok';
            $eMail = $form->get('username')->getData();
            echo $eMail;
        }

        return $this->render('accountRecoveryRequest.html.twig', array(
            'form' => $form->createView(),
        ));
    }  
}

Форма предоставлена ​​и работает. «ОК» отображается после нажатия «Отправить». Buuuut $ eMail всегда пусто ... Почему ??

Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 09 июля 2018

Вы также должны проверить, является ли форма действительной в вашем случае, если

if ($form->isSubmitted() && $form->isValid()){
....

Если он недействителен, вы можете проверить наличие ошибок с помощью

$form->getErrors(true)

Профилировщик также должен дать вам достаточно указателей на то, почему у вас нет данных, например, недопустимые значения и т. Д. И вы всегда можете использовать dump () для проверки ваших значений в любой точке вашего кода.

...