Symfony 使用已知路由解析URL以获取参数(与正常用法相反/相反)

Symfony 使用已知路由解析URL以获取参数(与正常用法相反/相反),symfony,Symfony,我希望我可以问这个问题,而不必详细说明我为什么要这样做 我有一条路线 /** * @Route("/edit/{id}", name="my_edit_route") */ public function editAction() { /* ....... */ } 现在在另一个时间点,我有一个URL,它是通过这个路由生成的(我只有字符串,没有其他可用信息)。绳子看起来像这样 /edit/23 Symfony2中是否有我可以提供路由名称(例如“my_edit_route”和此URL字

我希望我可以问这个问题,而不必详细说明我为什么要这样做

我有一条路线

 /**
 * @Route("/edit/{id}", name="my_edit_route")
 */
public function editAction()
{  /* ....... */ }
现在在另一个时间点,我有一个URL,它是通过这个路由生成的(我只有字符串,没有其他可用信息)。绳子看起来像这样

/edit/23
Symfony2中是否有我可以提供路由名称(例如“my_edit_route”和此URL字符串,并让Symfony提取参数的内容(例如id=23)

p、 我知道这可以通过正则表达式或其他工具来完成,但我在应用程序中的实际路径更复杂


我相信这对Symfony2来说应该不难做到,因为它每次从URL提取参数来处理请求时都会这样做。

您不需要路由名称

$params = $this->get('router')->match('/edit/23');
返回的
$params
为:

array(
    'id'          => '23',
    '_controller' => 'AppBundle:Blog:show',
)

您无需输入路由名称

$params = $this->get('router')->match('/edit/23');
返回的
$params
为:

array(
    'id'          => '23',
    '_controller' => 'AppBundle:Blog:show',
)

您建议如何从完整的URL(如
URL)中检索
/edit/23
部分http://server/myproject/web/app.dev/edit/23
?@Samiron使用请求类的getPathInfo()方法。
$Request->getPathInfo()
,注意:您可能需要使用urldecode函数,因为此方法返回编码值,请参阅api:谢谢回复。也许您可以看一下。我试图在那里详细解释我的问题。
getPathInfo()
对我的案例不起作用。您建议如何从完整的URL(如
URL)中检索
/edit/23
部分http://server/myproject/web/app.dev/edit/23
?@Samiron使用请求类的getPathInfo()方法。
$Request->getPathInfo()
,注意:您可能需要使用urldecode函数,因为此方法返回编码值,请参阅api:谢谢您的回复。也许您可以查看一下。我试图在那里详细解释我的问题。
getPathInfo()
对我的情况不起作用。