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()
对我的情况不起作用。