2017-02-23 4 views
1

私はsymfony 3でいくつかの複雑な作業を行ったので、ここでは馬鹿げていると感じていますが、分かりません。簡単な作業ですsymfony 3のフォームを使ってデータを配列に取得

これはかなりシンプルなはずですが、動作させることはできません。

getメソッドのリクエストからデータを取得するのは非常に簡単です。 "request-> query( 'param')を使うだけで十分です。

しかし、これらのパラメータを使用して、フォーム型またはフォームを使用してインデックス付き配列を作成し、データを正しい型に自動的に変換することを利用したいと考えています。

私はこの配列があります:私は

「/本を呼び出した後にデータをダンプすると

$booking = ['dateIn' => null, 'dateOut' => null] 

そして、このフォーム

$form = $this->createFormBuilder($booking, ['csrf_protection' => false]) 
      ->setMethod('GET') 
      ->add('dateIn', TextType::class) 
      ->add('dateOut', TextType::class) 
      ->getForm(); 

をdateIn = XXXX & dateOut = xxxxxは? "

$form->handleRequest($request);  
$form->getData(); 

それは私がそれを簡単にし、このことをテストするときに他の問題を破棄する代わりにDATETYPEのTextTypeを使用

['dateIn' => null, 'dateOut' => null] 

まだです。しかし、私の目標は、このパラメータを変換することです。

どういうところが間違っていますか?私はそれを "シンプル"(フォームを避ける)にしたり、実際の予約クラスなどを使用したりする必要があります。私はここでそれを必要としないので、セキュリティの複雑さを使用したくありません。

ありがとうございます! ?

/書籍[フォーム] dateIn = XXXX & [フォーム] dateOut = XXXXX

次のことができます。

答えて

1

デフォルトのフォーム名はformはので、私はこの本のようなのparamsで動作するはずですフォーム名をformFactoryサービスで変更します。例:

$form = $this->get('form.factory')->createNamedBuilder('','Symfony\Component\Form\Extension\Core\Type\FormType', $booking, ['csrf_protection' => false]) 
      ->setMethod('GET') 
      ->add('dateIn', TextType::class) 
      ->add('dateOut', TextType::class) 
      ->getForm(); 

または、古典的なフォームタイプを作成し、を実装しますメソッドを呼び出し、空の文字列を返します。

希望このヘルプ

+0

ありがとう!!フォーム名!!!私はポストまたはjsonカプセル化されたデータを使用してコントローラにデータを送信するので、私はそのシンプルで重要な詳細に気付かなかった。 –

関連する問題