如何在Symfony2服务中获取当前相对URL?

See*_*eer 3 php symfony

就像标题所说的那么简单.我的意思是我如何得到当前的相对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)

当然,这仍然不理想.

那么,我怎样才能可靠地获取我在这里寻找的所有东西呢?

See*_*eer 6

这实际上比我想象的要简单得多.我必须使用的是:

$request->getRequestUri();
Run Code Online (Sandbox Code Playgroud)

它会返回我正在寻找的东西.