就像标题所说的那么简单.我的意思是我如何得到当前的相对URL,包括文件名(如果有的话),即下面强调的一切:
http://hostname/app/app_dev.php/path/to/some/action?even=a%20query%20string
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
现在,如果您不需要该文件,获得RequestStack,获取当前请求并在服务中使用类似的内容,这很容易:
$request->getPathInfo();
Run Code Online (Sandbox Code Playgroud)
但是在我这个问题中的当前例子中会带来以下内容:
/path/to/some/action?even=a%20query%20string
Run Code Online (Sandbox Code Playgroud)
没有/app_dev.php,这对我来说至关重要.我已经筋疲力尽的另一种选择是使用路由器来生成当前路由,它在某些方面确实很好用,它确实显示了文件名,但是如果查询字符串的某些部分是'n',还有其他一些问题.路由中定义的t包含在当前请求中,然后它不会显示在此结果中.
所以,让我再次在上面的例子中假装even查询字符串没有包含在路由中,我无法生成它,这个方法只返回这样的东西:
/app_dev.php/path/to/some/action
Run Code Online (Sandbox Code Playgroud)
当然,这仍然不理想.
那么,我怎样才能可靠地获取我在这里寻找的所有东西呢?
这实际上比我想象的要简单得多.我必须使用的是:
$request->getRequestUri();
Run Code Online (Sandbox Code Playgroud)
它会返回我正在寻找的东西.
| 归档时间: |
|
| 查看次数: |
5117 次 |
| 最近记录: |