使用已知路径解析 URL 以获取参数(正常用法的反向/向后)

Sam*_*ony 1 symfony

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

我有一条路线

 /**
 * @Route("/edit/{id}", name="my_edit_route")
 */
public function editAction()
{  /* ....... */ }
Run Code Online (Sandbox Code Playgroud)

现在在其他某个时间点,我有一个使用此路由生成的 URL(我只有字符串,没有其他信息可用)。字符串看起来像这样

/edit/23
Run Code Online (Sandbox Code Playgroud)

无论如何,在 Symfony2 中,我可以提供路由名称(例如“my_edit_route”和此 URL 字符串,并让 Symfony 提取参数。(例如 id=23)

ps 我知道这可以使用正则表达式或其他工具来完成,但我的应用程序中的实际路线更加复杂。

我确信这对 Symfony2 来说应该不会太困难,因为它每次从 URL 中提取参数来处理请求时都已经这样做了。

gha*_*ari 5

你不需要路由名称

$params = $this->get('router')->match('/edit/23');
Run Code Online (Sandbox Code Playgroud)

返回$params为:

array(
    'id'          => '23',
    '_controller' => 'AppBundle:Blog:show',
)
Run Code Online (Sandbox Code Playgroud)