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

时间:2013-09-23 10:04:21

标签: php forms symfony search

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

    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-&gt; isSubmitted()”工作正常,但“$ dateTimeForm-&gt; isValid()”没有成真,我的意思是永远不会去“echo'有效';”。我究竟做错了什么? 先谢谢你。 亚伯古兹曼

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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