it-swarm-vi.com

Làm cách nào để tôi nhận được giá trị trường thô trong mẫu twig?

myfield là trường văn bản thuần túy. {{ content.field_myfield }} kết xuất trường bằng đánh dấu HTML và nhãn trường.

Làm cách nào để hiển thị giá trị thô của trường? {{ content.field_myfield.value }} không hoạt động.

28
Pim

{{ entity.field_name.value }} để có được giá trị thô thực sự, bao gồm các thẻ và mã hóa.

  • Thí dụ: {{ node.body.value }}
  • kết quả: <p>Batman &amp; Robin</p>

{{ content.field_name.0 }} để lấy các giá trị thô trừ các thẻ và mã hóa.

  • Thí dụ: {{ content.body.0 }}
  • kết quả: Batman & Robin

thô

Nên tránh bộ lọc này bất cứ khi nào có thể, đặc biệt nếu bạn xuất dữ liệu có thể do người dùng nhập. Xem trang này để biết thêm thông tin về tự động thoát trong Drupal 8.

nguồn: Bộ lọc - Sửa đổi biến trong Twig Mẫ

Bộ lọc thô đánh dấu giá trị là "an toàn", có nghĩa là trong môi trường có chế độ thoát tự động được bật, biến này sẽ không được thoát nếu raw là bộ lọc cuối cùng áp dụng cho nó

nguồn: Tài liệu chính thức của Twig




Ví dụ: bạn có thể sử dụng:

{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}

Vấn đề với việc sử dụng twig's | thoát y là mã hóa kép của các thực thể html, không phải đánh dấu, vì vậy & trở thành &amp; và sau đó &amp;amp; - Berdir

47
No Sssweat

Bạn có thể sử dụng mô đun Twig Field Value trong trường hợp này. Sau khi cài đặt mô-đun này, bạn sẽ có quyền truy cập vào dữ liệu một phần từ mảng kết xuất trường. Dành cho người cũ.

{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value

vv Thông tin thêm về trang dự án

5
Andrew Kozoriz
{{ content.body | raw }} 

lấy giá trị trường thô trong mẫu twig

2
Wasim Khan

Trong trường hợp điều này giúp được bất cứ ai, tôi muốn chỉ có năm bắt đầu của trường phạm vi thời gian, thay vì cả hai phần của phạm vi, trong một trường Twig mẫu.

Vì vậy, tôi đã kết thúc việc ghi đè mẫu trường thông thường bằng cách này:

{% if label_hidden %}
  {% if multiple %}
    <div{{ attributes.addClass(classes, 'field--items') }}>
      {% for key, item in items %}
        <h3{{ item.attributes.addClass('field--item') }}>{{ element['#items'][key].value|date('Y') }}</h3>
      {% endfor %}
    </div>
  {% else %}
    {% for key, item in items %}
      <h3{{ attributes.addClass(classes, 'field--item') }}>{{ element['#items'][key].value|date('Y') }}</h3>
    {% endfor %}
  {% endif %}
{% else %}
  <div{{ attributes.addClass(classes) }}>
    <div{{ title_attributes.addClass(title_classes) }}>{{ label }}</div>
    {% if multiple %}
      <div class="field--items">
    {% endif %}
    {% for key, item in items %}
      <h3{{ item.attributes.addClass('field--item') }}>{{ element['#items'][key].value|date('Y') }}</h3>
    {% endfor %}
    {% if multiple %}
      </div>
    {% endif %}
  </div>
{% endif %}
0
Dave Nattriss