0

我正在尝试按日期形式进行搜索以在 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->isSubmitted()”工作正常,但“$dateTimeForm->isValid()”并没有实现,我的意思是永远不会出现“echo 'Is Valid ';"。我究竟做错了什么?提前谢谢你。亚伯·古兹曼

4

2 回答 2

0

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

foreach($form->getErrors() as $err){
     echo $err->getMessage();
}
于 2013-09-23T12:30:21.087 回答
0

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

于 2013-09-23T10:45:04.710 回答