我正在我的数据库中存储url弹头,像这样:/blog/important-article.然后,我的BlogController将对/blog以下的资源的任何请求解析为相应的数据库条目。
这很好,但是在dev环境中,我仍然需要使用一个解决方案,因为dev路径是/app_dev.php/blog/important-article --数据库中不存在这个路径:
public function blogAction(Request $request)
{
$slug = $request->getRequestUri(); // matches to regex \/(app_dev.php\/)?blog\/.+
//...
}
我尝试了两种解决办法,但我不认为它们是可行的:
$slug = str_replace ('app_dev.php/', '', $slug);
。$slug = '/blog/'.$slugPart;
是否有一种获得prod Uri的symfony方法(即使在dev环境中)?
编辑:-- @gp_sflover建议的“可能”复制--有一个完全不同的焦点。它更多地是关于getPathInfo()
的文档/使用,而不是关于为什么和何时使用它。另一方面,我的问题是关于一个特定的用例--在那里,getPathInfo()
是人们可能正在寻找的实际解决方案。
发布于 2016-09-11 03:57:29
您可以使用pathInfo()方法:
在应用程序中,您需要一种识别请求的方法;大多数情况下,这是通过请求的“路径信息”完成的,可以通过
getPathInfo()
方法访问该请求: //对于对http://example.com/blog/index.php/post/hello-world //的请求,路径信息是"/post/hello-world“$ request ->getPathInfo();
希望能帮上忙
https://stackoverflow.com/questions/39435415
复制相似问题