9. Twig Helpers

9.1. URL

Render a page url

1
2
3
4
5
6
7
{{ path(page) }} => /absolute/path/to/url

{{ path(page, {}, true) }} => ../relative/path/to/url

{{ url(page) }} => https://sonata-project.org/absolute/url/to/url

{{ url(page, {}, true) }} => //sonata-project.org/network/path/to/url

Note

In case you need to use a page’s router in twig files, you can use pageAlias e.g:
{{ path('_page_alias_your_page') }}.

You will find this field in your sonata page admin, the pageAlias is named of Technical Alias.

Render a block url to render it in AJAX (given we have a block id = 1 used on a page id = 2)

1
2
3
4
5
{{ sonata_page_ajax_url(block) }} => /index.php/_page/block/2/1

{{ sonata_page_ajax_url(block, {'parameter': 'value'}) }} => /index.php/_page/block/2/1?parameter=value

{{ sonata_page_ajax_url(block, {'parameter': 'value'}, true) }} => https://sonata-project.org/index.php/_page/block/2/1?parameter=value

9.2. Container

Render a container using the current page

1
{{ sonata_page_render_container('name') }}

Render a container using a transversal page named blog

1
{{ sonata_page_render_container('name', '_blog') }}

Render a container using a page instance

1
{{ sonata_page_render_container('name', page) }}

Optionally, you can pass as a third argument some settings that will override original container settings:

1
{{ sonata_page_render_container('name', page, {key: value}) }}

9.4. Assets

1
2
3
{% for js in sonata_page.assets.javascripts %}
    {# ... #}
{% endfor %}

This allows to access the javascripts and css assets configured in sonata_page configuration.