it-swarm-vi.com

Cách in đoạn văn trong mẫu twig

Tôi có một loại nội dung, cơ bản, trong đó tôi đã thêm một trường Đoạn văn (field_pr) có hai trường: field lòng, trường_color. Tôi có một nút mẫu twig - basic - full.html.twig nơi tôi muốn in giá trị của trường đoạn văn (node.field_pr) vì nó có thể nhiều hơn 1 giá trị. Số lượng đoạn văn có thể được thêm vào bị giới hạn là 10, vì vậy hãy nghĩ đến node.field_pr có tối đa 10 giá trị.

Khi tôi in mảng cho content.field_pr, tôi nhận được một mảng lớn, nhưng tôi chỉ muốn các giá trị từ trường_pr.field giác và field_pr.field_color. Làm thế nào tôi có thể làm điều này từ nút twig mẫu? Tôi không thể hoàn thành nó.

Tôi đã thử sau đây nhưng dường như tôi không thể truy cập các giá trị. Tôi đang thiếu gì?

{% for field in content.field_pr %}
   {{ field[loop.index0].entity.field_text.value }}
   {{ field[loop.index0].entity.field_color.value }}
{% endfor %}

{% for field in content.field_pr %}
   {{ field[loop.index0]['#paragraph'].field_text.value }}
   {{ field[loop.index0]['#paragraph'].field_color.value }}
{% endfor %}

Đây là hình ảnh của mảng được in cho trường node.field_pr. enter image description here

6
usernameabc

Không chắc chắn nếu nó có thể với phương pháp hiện tại của bạn. Đây là cách tôi sẽ tiếp cận điều này.

Trong tệp mẫu nút của bạn chỉ cần thực hiện một {{ content.field_pr }}

Tạo một tệp mẫu cho đoạn văn của bạn.

đoạn __ [view_mode] (ví dụ: đoạn - default.html.twig)

đoạn __ [loại] (ví dụ: đoạn - image.html.twig)

đoạn __ [loại] __ [view_mode] (ví dụ: đoạn - hình ảnh - default.html.twig)

nguồn: Theo chủ đề trong Đoạn văn cho Drupal 8

Trong đoạn - [loại] .html.twig bạn làm {{ content.field_text }}{{ content.field_color }}

6
No Sssweat

Tôi đã tìm ra cái này Với Twig Tweak được bật, bạn có thể in các đoạn từ đối tượng nút mà không cần sử dụng nội dung:

{% for item in node.field_my_paragraph_field %}
     {{ drupal_entity('paragraph', item.target_id) }}
{% endfor %}
2
user33560

Để in các trường đoạn trong một vòng lặp (đối với thanh trượt, v.v.) trong page--content-type.html.twig sử dụng đoạn trích dưới đây:

{% for item in node.field_paragraph_mac_name %}
  {{ item.entity.field_title.value }}
  <img src="{{ file_url(item.entity.field_image.entity.fileuri) }}" />
{% endfor %}
2
Hashmat

Dựa trên câu trả lời của người dùng33560. Nếu bạn có các đoạn văn lồng nhau và bạn muốn in hoặc lấy các trường đoạn văn cấp 2 từ trong cấp 1 paragraph.html.twig:

{% set paragraph_name = content.field_paragraph_name %}

{% for item in paragraph_name['#items'] %}
    {{ drupal_entity('paragraph', item.target_id) }}
{% endfor %}

Bạn cũng có thể sử dụng {{ content.field_paragraph_name }} Để in tất cả các mục đoạn văn hoặc in một tập hợp con, chẳng hạn như {{ content.field_paragraph_name.field_example }}. Sử dụng {{ content.field_paragraph_name|without('field_example') }} để tạm thời in phần tử con đã cho.

2
AdamB