2016-12-02 1 views
0

コントローラにフォームを作成しました。フォームはエンティティとは関係ありません。エンティティとマッピングされていないフォームからデータを読み取る

public function formularzAction(Request $request) 
    $form = $this->createFormBuilder() 
      ->add('task', TextType::class, array('mapped' => false)) 
      ->add('dueDate', DateType::class, array('mapped' => false)) 
      ->add('save', SubmitType::class, array('label' => 'Create Post')) 
      ->getForm(); 
    $form->handleRequest($request); 
    if ($form->isSubmitted()) { 
     $t = $form->getData(); 
     return new Response(form['task']->getData()); 
    } 
    return $this->render('JakubBundle:Default:formularz.html.twig', array(
       'form' => $form->createView() 
    )); 
} 

私はフォームデータを読み込もうとしています。 $ form ['task'] - > getData()は動作しますが、$ form ['dueDate'] - > getData()は機能しません。エラーメッセージは「応答コンテンツは、__toString()を実装している文字列またはオブジェクトでなければなりません」というオブジェクトです。 問題をどのように解決する必要がありますか?事前に助けてくれてありがとう。

+0

'新しい応答を返す(フォーム[ 'タスク'] - >のgetData());' '新しいレスポンスを返すべきである($フォーム[ 'タスク' ] - > getData()); 'おそらく.... – craigh

+0

dump($ t);必要なデータはすべてシンプルな配列としてそこにあるはずです。 Thans Matko。 – Cerad

答えて

0

$form['dueDate']->getData()は、DateTimeオブジェクトを返します。

http://php.net/manual/en/class.datetime.php

あなたは、そのオブジェクトの文字列表現を取得する必要があります。

1つの可能性は、DateTimeオブジェクトのformat()メソッドを呼び出すことです。例えば

$dt = $form['task']->getData(); 
return new Response($dt->format('Y-m-d H:i:s'))); 

http://php.net/manual/en/datetime.format.php

+0

それは働いている – appson

関連する問題