Symfony2 通配符路由

Symfony2 wildcard routing

我正在尝试创建一个处理特定操作确认的特殊路由。例如,如果我正在尝试访问路线 /admin/user/1/delete,我想先转到另一条路线以显示一个特殊的 html 页面,确认他们想要完成一个操作(即。confirm/admin/user/1/delete) 并且在页面上有一个转到路由的确认按钮和一个重定向到引荐来源网址的返回按钮。

在下面的例子中,有没有办法允许 {route} 是任何东西并将其传递到 twig 页面?

/**
* @Route("/confirm/{route}", name="confirm_dialog")
* @param type $route
*/
public function confirmAction($route)
{
}

有一本介绍此特定用例的说明书: http://symfony.com/doc/current/cookbook/routing/slash_in_parameter.html

By default, the Symfony Routing component requires that the parameters match the following regex path: "[^/]+". This means that all characters are allowed except "/".
You must explicitly allow "/" to be part of your parameter by specifying a more permissive regex path: ".+"

/**
* @Route("/confirm/{route}", name="confirm_dialog", requirements={"route"=".+"})
* @param type $route
*/
public function confirmAction($route)
{
    // ...
}

但我不推荐您尝试使用的模式。 我建议使用相同的路线“/admin/user/1/delete”,使用 GET 显示确认表单并使用 POST 执行删除。 如果您不想重复请求确认的代码,您可以随时提取该特定代码。