也许这是一个愚蠢的问题,但我花了很多时间试图让它发挥作用......
这是来自我的路由文件:
holder.bg.setBackgroundResource(R.drawable.bubble_green);
我的树枝模板:
search:
path: /search
defaults: { _controller: MyAppBundle:Default:search}
我的控制员:
{{ path('search', {'value': value}) }}
我的问题如下,上面的数据我正在生成这个网址:
public function searchAction(Request $request){
$value = $request->query->get('value');
而不是我想要的网址:
/search/value
我更喜欢干净的网址,但我需要使用“?”传递网址中的值由于我需要在URL中传递不同的值,并且在不同情况下可以省略其中一些
答案 0 :(得分:1)
为什么不这样做呢:
search:
path: /search/{value}
defaults: { _controller: MyAppBundle:Default:search}
public function searchAction(Request $request, $value){
// Do something with $value...
它没有解决URL问题,但您可以在Twig文件中轻松设置value参数,这是在Symfony中执行此操作的标准方法。
编辑#2 - 基于评论。
我做的是这样的:
{{ path('searchPet',{'petID': pet.getPetId}) }}
在上述情况中,searchPet
是路线,petID
是参数名称,pet.getPetId
是我的pet
方法;其中pet
是我传入控制器的请愿权(Twig呈现);所以我打电话给getPetId()
,它返回请愿书的ID。
因此,如果您使用param
作为变量在Controller中进行渲染:
return $this->render('search.html.twig', array(
'param' => 'test',
...
));
然后在Twig中这样做:
{{ path('search', {'value': param}) }}
在这种情况下,网址将是/search/test
编辑#3 - 基于最后评论。
引用您要发送的值,因此您要发送'test',请执行以下操作:
{{ path('search', {'value': 'test'}) }}
我测试了它 - 它有效。
答案 1 :(得分:0)
如果您遇到此问题,请检查您是否未在路由文件中传递参数,并检查您的html中是否有表格作为方法(如果您有任何带有post方法的表单,改变它来解决问题)