2016-12-29 103 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在搜索重定向,並點擊提交的路徑是這樣的:

本地主機:8000 /頁?表單%5Bvalue%5D = foo的&形式%5BSearch%5D = &形式%5B_token%5D = PsouIRAy2QaQ8j2XO_uYrs7PcaR6jyjQN3W3_xRMdgw

而且如果我去localhost:8000/search,並嘗試爲p取消任何東西到搜索欄中,不會打印任何值。

下面是如何的形式呈現:

//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

當你的表單在瀏覽器上呈現時,它是怎樣的?你可以檢查你的網絡檢查員,拍一張快照,並在這裏發佈? – CodeGodie

+1

你如何在樹枝中呈現你的表單? – goto

+0

表單在檢查器中沒有「操作」或「方法」屬性。 我已經添加了枝條渲染元素 – aln447

回答

1

固定!在樹枝文件中犯了一個簡單的錯誤。 將表單放置在HTML表單標籤內,這樣提交按鈕就會發送到一個空的表單。