用Symfony创建一个简单的表单

时间:2018-07-05 22:24:20

标签: forms controller symfony-3.4

我对简单的简单事物感到疯狂!我只想制作一个带有一个文本输入字段和一个验证按钮的小表格,并获取用户输入的值。而且它不起作用。绝对疯狂……我敢肯定这是一件很小的事情,但我无法解决!

这是我的代码:

<?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 :(得分:0)

您还应该检查该表单在您的if中是否有效

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

如果无效,您可以使用

检查错误
$form->getErrors(true)

探查器还应为您提供足够的指针,以指示为什么您没有数据,例如无效值等。 而且,您随时可以使用dump()来检查代码中任何位置的值。