2017-01-31 23 views
1

私のPOSTフォームからSymfonyを使ってレスポンスを取得しようとしていますが、 'name'変数は常にnullを返していますか?これに何時間も拘束されていて、助けていただければ幸いです。POSTリクエストを取得Symfony 3

私は$ request-> request-> get( '...'、 'default')を使用しています。あなたのプロジェクトのオブジェクトから名前の値を取得することができます

{ 
    $project = new Project(); 

    $form = $this->createFormBuilder($project) 
     ->add('name', TextType::class) 
     ->add('save', SubmitType::class, array('label' => 'Load Project')) 
     ->getForm(); 

    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     return $this->render('default/show.html.twig', array(
      'name' => $request->request->get('name', 'null'), 
     )); 
    } 

    return $this->render('default/new.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 
+1

あなたが 'POST'変数を読み込むしようとしているようです'GET'配列から!代わりに 'request-> post'を使用してみてください – Antony

+0

これを試してください ' if($ form-> isSubmitted()&& $ form-> isValid()){ $ project = $ form-> getData(); return $ this-> render( 'default/show.html.twig'、array( 'name' => $ project-> getName()、 )); } ' – jagad89

+0

@AntonyこれはSymfonyの仕組みではありません! $ request-> requestはPHPのsuperglobal $ _POSTに相当します。したがって、$ request-> request-> get( 'name')を呼び出すことは、ネイティブPHPの$ _POST ['name']を呼び出すことと同じです。 – OlivierC

答えて

0

$project = new Project(); 

$form = $this->createFormBuilder($project) 
    ->add('name', TextType::class) 
    ->add('save', SubmitType::class, array('label' => 'Load Project')) 
    ->getForm(); 

$form->handleRequest($request); 

if ($form->isSubmitted() && $form->isValid()) { 
    return $this->render('default/show.html.twig', array(
     'name' => $project->getName(), 
    )); 
} 

return $this->render('default/new.html.twig', array(
    'form' => $form->createView(), 
)); 

またはフォームから:

$project = new Project(); 

$form = $this->createFormBuilder($project) 
    ->add('name', TextType::class) 
    ->add('save', SubmitType::class, array('label' => 'Load Project')) 
    ->getForm(); 

$form->handleRequest($request); 

if ($form->isSubmitted() && $form->isValid()) { 
    return $this->render('default/show.html.twig', array(
     'name' => $form->get('name'), 
    )); 
} 

return $this->render('default/new.html.twig', array(
    'form' => $form->createView(), 
)); 
関連する問題