15

在 twig 中,我需要获取当前的完整 uri (url + uri),而不是像这样渲染它

path('route_test', {param1:1})

如何得到它?

4

4 回答 4

42

尝试使用:

{{ app.request.uri }}
于 2013-02-01T12:39:57.247 回答
4

正如上面所说,一些答案不再有效。

截至2017'09 年对我有用的是这个

{{ url('<current>') }}
于 2017-09-03T16:06:02.207 回答
2

在最新版本的树枝中不再起作用{{app.request.uri}}

试试{{global.request.uri}}吧。

于 2016-10-18T13:47:13.450 回答
1

您可能对子请求($this->forward来自控制器或{{ render(controller('...')) }}视图)有问题,我更喜欢为此使用 Twig 扩展。

<?php

namespace AppBundle\Twig\Extension;

// ...    

class MyExtension extends \Twig_Extension
{
    // ...

    public function getFunctions()
    {
        return [
            new \Twig_SimpleFunction('current_locale', [$this, 'currentLocale']),
            new \Twig_SimpleFunction('current_uri', [$this, 'currentUri']),
        ];
    }

    public function currentLocale()
    {
        return $this->get('request_stack')->getMasterRequest()->getLocale();
    }

    public function currentUri()
    {
        return $this->get('request_stack')->getMasterRequest()->getUri();
    }

    public function getName()
    {
        return 'my';
    }
}
于 2017-02-05T10:37:53.220 回答