解析具有已知路由的URL以获取参数(正常使用的反向/反向)

时间:2015-04-20 15:51:32

标签: symfony

我希望我可以在不详细说明为什么需要这样做的情况下提出这个问题,

我有路线

 /**
 * @Route("/edit/{id}", name="my_edit_route")
 */
public function editAction()
{  /* ....... */ }

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

/edit/23

在Symfony2中是否存在,我可以提供路由名称(例如" my_edit_route"以及此URL字符串,并让Symfony提取参数。(例如id = 23)

P.S。我知道这可以用正则表达式或其他工具完成,但我的应用程序中的实际路径更复杂。

我确信Symfony2不应该这么做,因为它每次从URL中提取参数来处理请求时都会这样做。

1 个答案:

答案 0 :(得分:3)

您无需路由姓名

$params = $this->get('router')->match('/edit/23');

$params返回为:

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