Làm thế nào để kết xuất mô-đun đoạn văn trong twig


8

Tôi đang tạo một mẫu tùy chỉnh cho chủ đề của mình và tôi đang xây dựng một trang page.html.twig. Tôi muốn gọi các trường nút riêng lẻ thành các hàng riêng biệt. Tôi đã có thể hiển thị thành công mọi thứ trừ trường đoạn.

Tôi đã thử.

{{ node.field_benefits }}
{{ node.field_benefits.value }}
{{ paragraph.field_benefits }}
{{ paragraph.field_benefits.value }}
{{ node.paragraphs.field_benefits }}

Và không có gì đã làm việc. Có ai có bất kỳ ý tưởng về cấu trúc chính xác để gọi trong mô-đun đoạn không?

Hoặc là một chức năng cho công việc

{% if node.field_benefits %}
{% for field_items in node.field_benefits %}
{{ field_item.value }}
{% endfor %}
{% endif %}

page.html.twig không xử lý các nút ... chỉ có mẫu trang tổng thể. Bạn đang sử dụng mẫu sai. Tôi đề nghị bạn ghi đè lên mẫu nút thay vào đó (hoặc ít nhất là đọc lên cách truy cập các mẫu twig). Ngoài ra, bật gỡ lỗi twig và xem mã nguồn sẽ giúp bạn xác định được mẫu nào bạn nên ghi đè.
NikLP

Ok @NikLP Tôi đã chuyển mọi thứ đến cấp nút, nhưng tôi vẫn không thể kết xuất mô-đun đoạn văn - Tôi đang sử dụng trường mà tôi đã thu được từ gỡ lỗi và kint và vẫn hiển thị một hàng trống
Megan McGowan

Có thể kiểm tra này? drupal.org/node/2444893
NikLP

Câu trả lời:


7

Đầu tiên thêm một paragraph--your_paragraph_machine_name.html.twigvào thư mục mẫu của chủ đề của bạn.

Truy cập các trường đoạn của bạn có thể được thực hiện bằng cách thêm các biến twig trong một định dạng tương tự {{ content.field_your_field }}.

Nếu bạn chỉ muốn giá trị trường, điều đó khó hơn một chút. Chẳng hạn, nếu bạn có trường Danh sách (văn bản) và muốn nhận giá trị từ tùy chọn đã chọn, bạn có thể thực hiện một số việc như:

{% for item in content.field_select_list %}
  {% if item is iterable %}
    {% for key,value in item %}
      {% if not value is iterable %}
        {% if key == '#markup' %}
          {{ value }}
        {% endif %}
      {% endif %}
    {% endfor %}
  {% endif %}
{% endfor %}

Bạn luôn có thể chạy a {{ dump(content) }}để xem cấu trúc và nhận các giá trị bạn đang tìm kiếm. Hi vọng điêu nay co ich!

EDIT: Bạn có thể tránh tất cả các vòng lặp lồng nhau ngớ ngẩn. Ví dụ trên nên được viết như sau:

{% set value = content.field_select_list.0['#markup'] %}
{{ value }}

Đối với trường Văn bản (thuần túy), nó có thể trông giống như:

{{ content.field_text.0['#context'].value }}

Để nhận giá trị URL từ trường Liên kết, tôi đã thấy các đề xuất như:

{{ content.field_link['#items'].0.value.uri }}

Nhưng nó sẽ có tiền tố "nội bộ: /", vì vậy tôi đã gặp may mắn hơn với thứ như thế này:

{{ content.field_link.0['#title'] %}

Bạn có thể sử dụng paragraph.field_my_text.valuetrong bất kỳ mẫu đoạn nào để xuất giá trị đơn giản, không được định dạng, giống như node.field_my_text.valuetrong mẫu nút.
Philipp Michael

Làm thế nào để bạn in đoạn văn - your_par Đoạn_machine_name.html.twig từ mẫu chính của bạn?
Sam
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.