Symfony2 我无法从 Twig 模板提交有效的表单


Symfony2 I cannot submit a valid form from the Twig template

我正在尝试按日期形式进行搜索以在Symfony 2.3上工作。我有一个带有几个字段 (5) 的实体,该实体的名称是 Schedule,其中两个字段是日期时间,用于开始日期时间和结束日期时间。我想按日期搜索,但这让我头疼。我有这个动作:

    public function indexAction(Request $request)
{
    //time form creation
    $aSchedule = new Schedule();
    $dateTimeForm = $this->createFormBuilder($aSchedule)
            ->add('startDateTime', 'datetime')
            ->add('endDateTime', 'datetime')
            ->add('search', 'submit')
            ->getForm();
    //getting the formr using post
    $dateTimeForm->handleRequest($request);
    if ($dateTimeForm->isSubmitted()){
        echo 'Submited';
    }
    if ($dateTimeForm->isValid()){
        echo 'Is Valid';
    }
}

我在模板中显示了表单,如下所示:

        <form action="{{ path('osd_sch_homepage') }}" method="post" 
        {{ form_enctype(dateTimeForm) }} >
        <div id="start-date-time">
            {{ form_label(dateTimeForm.startDateTime) }}
            {{ form_errors(dateTimeForm.startDateTime) }}
            {{ form_widget(dateTimeForm.startDateTime) }}                    
        </div>         
        <div id="end-date-time">
            {{ form_label(dateTimeForm.endDateTime) }}
            {{ form_errors(dateTimeForm.endDateTime) }}
            {{ form_widget(dateTimeForm.endDateTime) }}            
        </div>
        <div>
            {{ form_widget(dateTimeForm.search) }}
        </div>
    </form>

现在,在每次发送表单的操作中,"$dateTimeForm->isSubmitted()"工作正常,但是"$dateTimeForm->isValid()"没有变为真,我的意思是永远不会去"echo'Is Valid';"。 我做错了什么?提前谢谢你。阿贝尔·古兹曼

它可能没有放置自动生成的 CSRF 令牌。试着把{{ form_rest }}放在最后。

您是否尝试过调试表单错误?

foreach($form->getErrors() as $err){
     echo $err->getMessage();
}