Методы получения URL-адреса узла по идентификатору в Twig

Чтобы «получить URL-адрес узла по идентификатору» в Twig, вам потребуется доступ к системе маршрутизации Drupal или Symfony. Вот несколько методов, которые можно использовать для достижения этой цели, а также соответствующие примеры кода:

Метод 1: использование объекта Drupal Url

{% set node = drupal_entity_load('node', node_id) %}
{% set url = url('entity.node.canonical', {'node': node.id}) %}
{{ url.toString() }}

Метод 2: использование функции path

{% set node = drupal_entity_load('node', node_id) %}
{% set path = path('entity.node.canonical', {'node': node.id}) %}
{{ path }}

Метод 3: использование функции url

{% set node = drupal_entity_load('node', node_id) %}
{% set url = url('entity.node.canonical', {'node': node.id}, {absolute: true}) %}
{{ url }}

Метод 4. Использование функции pathс абсолютным URL-адресом

{% set node = drupal_entity_load('node', node_id) %}
{% set path = path('entity.node.canonical', {'node': node.id}) %}
{{ app.request.schemeAndHttpHost ~ path }}

Метод 5. Использование фильтра link

{% set node = drupal_entity_load('node', node_id) %}
{% set url = path('entity.node.canonical', {'node': node.id}) %}
{{ node.title|link(url) }}

Эти методы предполагают, что вы уже загрузили объект узла, используя его идентификатор (node_id). Замените 'node'на соответствующий тип объекта, если вы работаете с другим объектом.