0

Symfony 2.3 で動作するように日付フォームで検索しようとしています。いくつかのフィールドを持つエンティティがあります (5) エンティティの名前は Schedule で、このフィールドの 2 つは 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()」が true になっていません。つまり、「echo 'Is Valid ';". 私は何を間違っていますか?よろしくお願いします。アベル・グズマン

4

2 に答える 2

0

自動生成されたCSRFトークンを入れていない可能性があります。{{ form_rest }}最後に入れてみてください。

于 2013-09-23T10:45:04.710 に答える
0

フォームのエラーをデバッグしようとしましたか?

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