Как я могу получить / напечатать путь или URL ссылки на сущность на мой шаблон ветки (Drupal 8)?

Я пытался выяснить, как я могу получить URL-адрес типа содержимого узла, используя ссылку на сущность.

введите описание изображения здесь

Видимо используя {{ links.entity.uri }} или же {{ links.entity.url }} не работает

<div>

{% for links in node.field_related_items %}

<h2>{{ links.entity.label }}</h2>
<a href="{{ links.entity.uri }} " ></a>

{% endfor %}

</div>

2

Решение

Это сработало для меня:

<a href="{{ links.entity.id }}"></a>

Это приведет вас только к /node/entity_id хотя и не /entity_name/entity_id

Я хотел бы расширить этот ответ, сказав, что вы должны добавить Drupal::entityQuery() на ваш .theme файл. Внутри этого запроса вы захотите получить «псевдоним», который является ссылкой на контент. В вашем случае это даст вам эти ссылки /migrations а также /aboutiom,

Вот пример того, как это может выглядеть …

  function theme_name_preprocess_node(&$variables) {
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'related_links')
$nids = $query->execute();
$nodes =  \Drupal\node\Entity\Node::loadMultiple($nids);
$related_links = [];
foreach ($nodes as $item) {
$alias = \Drupal::service('path.alias_manager')->getAliasByPath('/node/'.$item->id());
$related_links[] = [
'title' => $item->getTitle(),
'id' => $item->id(),
'field' => $item->get('field_name')->value,
'alias' => $alias,
];
}
$variables['related_links'] = $related_links;
}

Теперь в вашем шаблоне ветки вы можете сделать что-то вроде этого …

{% for link in related_links %}
<a href="{{ link['alias'] }}">{{ link['title'] }}</a>
{% endfor %}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]