我将url slugs存储在我的数据库中,如下所示: / blog / important-article 。然后,我的BlogController将对 / blog 下面的资源的任何请求解析为相应的数据库条目。
这很好用,但在开发环境中,我仍然需要使用解决方法,因为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;
是否有一种symfony方式来获取产品Uri(即使在开发环境中)?
[编辑:] @gp_sflover建议的"possible"副本具有完全不同的焦点。它更多地是关于getPathInfo()
的文档/用法,而不是关于使用它的原因和时间。另一方面,我的问题是关于一个特定的用例 - getPathInfo()
是你可能正在寻找的实际解决方案。
答案 0 :(得分:1)
您可以使用pathInfo()方法:
在您的应用程序中,您需要一种识别请求的方法;大部分的 时间,这是通过"路径信息"请求,可以 通过
getPathInfo()
方法访问:// for a request to http://example.com/blog/index.php/post/hello-world // the path info is "/post/hello-world" $request->getPathInfo();
希望这个帮助