我正在尝试按日期形式进行搜索,以便在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'有效';”。我究竟做错了什么? 先谢谢你。 亚伯古兹曼
答案 0 :(得分:0)
可能没有放置自动生成的CSRF令牌。尝试将{{ form_rest }}
放在最后。
答案 1 :(得分:0)
您是否尝试调试表单错误?
foreach($form->getErrors() as $err){
echo $err->getMessage();
}