2016-12-29 14 views
0

にリダイレクトされません。Symfony3フォームビルダーSetActionは、私は、ウェブサイトのナビゲーションバーに検索バーを制御するフォームを持っているルート

public function searchFormAction() 
    { 
     $form = $this->createFormBuilder() 
      ->setAction($this->generateUrl('search')) 
      ->setMethod('GET') 
      ->add("value", TextType::class, array('label' => false)) 
      ->add("Search", SubmitType::class) 
      ->getForm(); 

     return $this->render('components/search-form.html.twig', [ 
      "form" => $form->createView() 
     ]); 
    } 

あなたが見ることができるように、フォームがこの機能に特定のアクションパスを持っています

/** 
    * @Route("/search", name="search") 
    */ 
    public function searchAction(Request $request) 
    { 
     return $this -> render ("post/post-search.html.twig", [ 
      "value" => $request->query->get('value') 
     ]); 
    } 

今のところ、これは単にページの値を表示するだけではありません。

の問題は、ウェブサイトは、私が検索でFOOを入れたときに、フォームがそう

を使用した場合にリダイレクトし、そしてパスは次のようになります提出]をクリックしなかったということです。

はlocalhost:8000 /ページ?フォーム%5Bvalue%の5D = fooの&フォーム%5BSearch%5D = &フォーム%5B_token%5D =私はlocalhost:8000/searchに行くと、pしようとするとまたPsouIRAy2QaQ8j2XO_uYrs7PcaR6jyjQN3W3_xRMdgw

検索バーには何も表示されず、値も表示されません。ここ

フォームがレンダリングされる方法である。

//search-form.html.twig 
<form class="navbar-form navbar-left"> 
    {{ form_start(form) }} 
    <div class="form-group"> 
     {{ form_row(form.value) }} 
    </div> 
    {{ form_row(form.Search) }} 
    {{ form_end(form) }} 
</form> 

ベースナビゲーションバーに配置された:エレメントを点検

//base.html.twig 
//... 
{{ render(controller(
       'AppBundle:Form:searchForm' 
       )) }} 
//... 

フォームタグが全く作用を持たず、方法は

属性ことを示します

ここで問題となることは何ですか?どのように修正できますか?

+2

フォームがブラウザでレンダリングされるとき、どのように見えますか? Webインスペクタで検査し、スナップショットを撮ってここに投稿できますか? – CodeGodie

+1

あなたのフォームを小枝でどのようにレンダリングしますか? – goto

+0

フォームには、インスペクタに「アクション」属性または「メソッド」属性がありません。 Twigレンダリング要素を追加しました – aln447

答えて

1

修正済み!小枝ファイルで簡単な間違いをしました。 フォーム開始をhtmlフォームタグの内側に配置すると、送信ボタンが空のフォームに送信されます。

関連する問題