Drupal 8 - как мне извлечь URL-адрес из заголовка узла


Я могу напечатать заголовок своего content-type, используя {{ fields.title.content }}. и он отображается как <a href='...'>Title of the content</a>. Я создал View (режим просмотра: поле) и показал список доступных продуктов на этой странице. Чтобы настроить внешний вид страницы, я скопировал файл views-view-fields.html.twig из core/themes/stable/template/views в каталоге шаблонов моей темы и настроил его следующим образом.

<div class="col-md-2 col-sm-2 col-xs-12">
    <div class="box-gray-border-only border-radius-5 padd-all-5">
        {{ fields.field_product_image.content }}
    </div>
</div>
<div class="col-md-10 col-sm-10 col-xs-12">
    <h3 class="item-list-title-anchor margin-auto larger">{{ fields.title.content }}</h3>
    <p class="margin-t10 small">{{ fields.field_product_summary.content|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES') }}</p>
</div>
<div class="clearfix"></div>
<div class="row">
    <div class="col-md-12 col-sm-12 col-sx-12 text-right">
        <span>{{ fields.field_category.content }}</span>&nbsp;|&nbsp;
        <span><b class="text-red">Price: {{ fields.field_product_price.content }}</b></span>&nbsp;
        <a title="{{ fields.content.title }}" class="btn btn-warning" href="{{ path('entity.node.canonical', { 'node' : node.id}) }}">View &raquo;</a>
    </div>
    <div class="clearfix"></div>
</div>
<div class="margin-t20"></div>
<hr />

Само название связано со страницей продукта. Но у меня есть дополнительная кнопка просмотра, которую я хочу отдельно связать со страницей продукта также. Чтобы сделать то же самое, я попытался извлечь часть URL из title с помощью {{ path('entity.node.canonical', { 'node' : node.id}) }}. Но это дает мне следующее сообщение об ошибке.

Symfony\Компонент\Маршрутизация\Исключение\Недопустимый параметр Исключение: Параметр "узел" для маршрута "entity.node.canonical" должен соответствовать "\d+" (""задано) для создания соответствующего URL-адреса. в Drupal\Core\Маршрутизация\Генератор URL->Догенерация() (строка 193 из core\lib\Drupal\Core\Routing\UrlGenerator.php ).

Я имею в виду это статья: https://chromatichq.com/blog/creating-links-within-twig-templates-using-path-and-url

Что я сделал не так?

Вот чего я хочу достичь:

enter image description here

Я использовал {{ dump(fields.title.content) }}, чтобы посмотреть, могу ли я получить доступ к URL, но ничего подобного не было.

 1
Author: Niladri Sarkar, 2016-12-01

1 answers

Попробуйте {{ path('entity.node.canonical', { 'node' : row.nid}) }}. Также лучше использовать kint или devel_dump для отладки ветки.

 4
Author: Andrew Nim, 2016-12-01 14:59:35