ใน symfony 2.1 คุณสามารถใช้สิ่งนี้:
{{ path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) }}
ใน symfony 2.0 โซลูชันหนึ่งคือการเขียนนามสกุลทวิกสำหรับสิ่งนี้
public function getFunctions()
{
return array(
'my_router_params' => new \Twig_Function_Method($this, 'routerParams'),
);
}
/**
* Emulating the symfony 2.1.x $request->attributes->get('_route_params') feature.
* Code based on PagerfantaBundle's twig extension.
*/
public function routerParams()
{
$router = $this->container->get('router');
$request = $this->container->get('request');
$routeName = $request->attributes->get('_route');
$routeParams = $request->query->all();
foreach ($router->getRouteCollection()->get($routeName)->compile()->getVariables() as $variable) {
$routeParams[$variable] = $request->attributes->get($variable);
}
return $routeParams;
}
และใช้แบบนี้
{{ path(app.request.attributes.get('_route'), my_router_params()|merge({'additional': 'value'}) }}
คุณไม่จำเป็นต้องใช้ทั้งหมดยกเว้นว่าคุณต้องการเพิ่มพารามิเตอร์เพิ่มเติมให้กับลิงก์ของคุณเช่นในเพจเจอร์หรือคุณต้องการเปลี่ยนหนึ่งในพารามิเตอร์