簡體   English   中英

Symfony3表單構建器setAction不會重定向到路由

[英]Symfony3 Form builder setAction won't redirect to route

我有一個表單來控制網站navbar中的搜索欄:

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 / page?form%5Bvalue%5D = foo&form%5BSearch%5D =&form%5B_token%5D = PsouIRAy2QaQ8j2XO_uYrs7PcaR6jyjQN3W3_xRMdgw

此外,如果我轉到localhost:8000/search並嘗試將任何內容放入搜索欄中,則不會輸出任何值。

表單的呈現方式如下:

//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'
                )) }}
//...

檢查元素表明form標記沒有動作和方法屬性

這里可能是什么問題,我該如何解決?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM