我有一个能够在多条路线上行动的动作。我刚刚在这里定义了冲突部分。
/**
* @Route("/arama/ilanlar/{vehicleType}", requirements={"vehicleType"="(^$|araba|ticari-arac|motosiklet)"}, name="offer_search_fulltext_vehicletype")
* @Route("/{vehicleType}/{brand}", requirements={"vehicleType"="(araba|ticari-arac|motosiklet)", "brand"="[\w_-]+"}, name="offer_browse_vehicletype_brand")
* @Method({"GET"})
* @Template()
*/
public function searchAction(
Request $request,
$vehicleType = null,
$brand = null,
) {
---
}
第一个路由"品牌" var可以作为GET参数出现,但是在twig路径和url函数中传递这个变量它仍然会得到" brand" var as url参数,我在动作函数定义中给出null。
我在下面尝试设置路线参数,但它没有奏效。我怎么能阻止这种压倒一切?我必须在路由上使用相同的变量名称,如果不是,它将在整个代码中打破动态。
$request->attributes->set('_route_params', array_filter($request->get('_route_params')));
你有什么想法吗?
答案 0 :(得分:0)
路由定义中的变量(并传递给控制器操作方法)是一个请求属性,因此URL中的任何数据都不会自动分配给操作方法中的变量。
你可以使用$ request-> get(“some name”)按照
的顺序查找变量网址参数>请求属性>邮政指南