我正在用symfony 2制作一个基本的搜索表单。我对routing.yml文件的配置有问题。
我的路由yml文件
adhl_front_search:
pattern: /{_locale}/search
defaults: { _controller: AdhlFrontBundle:Blog:search }
requirements:
_locale: en
我的表单代码:
<form method="get" action="{{ path('adhl_front_search') }}/">
<input type="text" value="" name="keyword" />
<input type="submit" value="Search" />
</form>
我得到并想要这个网址:
app_dev.php/en/search/?keyword=computer
Symfony错误:
No route found for "GET /en/search/"
我不知道如何为搜索表单配置我的url。在我的情况下,它是期望的吗?keyword=路由中的计算机。yml。如果我像pattern: /{_locale}/search/{keyword}
那样做,那么表单页面在{{ path('adhl_front_search') }}
处出错
其次,我如何将关键字(在上面的情况下是计算机)值传递给我的控制器?请帮我解决这个问题。
最简单的方法是
pattern: /{_locale}/search/?keyword={key}
并且在您的控制器中预期$key变量,但这不是最好的方式。。。
但是试着做这个
pattern: /{_locale}/search/
我在我的一个项目中有这个,它可以
编辑2:在你的控制器中试试这个
public function searchAction(Request $request)
{
$keyword = $request->get('keyword');