myfieldはプレーンテキストフィールドです。 {{ content.field_myfield }}
は、HTMLマークアップとフィールドラベルを使用してフィールドをレンダリングします。
フィールドの生の値をどのようにレンダリングしますか? {{ content.field_myfield.value }}
は機能しません。
{{ entity.field_name.value }}
は、タグとエンコーディングを含み、真の生の値を取得します。
{{ node.body.value }}
<p>Batman & Robin</p>
{{ content.field_name.0 }}
は、タグとエンコーディングを除いた未加工の値を取得します。
{{ content.body.0 }}
Batman & Robin
raw
特にユーザーが入力する可能性のあるデータを出力する場合は、このフィルターをできる限り避けてください。 Drupal 8.の自動エスケープの詳細については このページ を参照してください。
ソース: フィルター-Twigテンプレート の変数の変更
Rawフィルターは値を「安全」としてマークします。つまり、自動エスケープが有効になっている環境では、この変数はエスケープされません。最後に適用されたフィルター
ソース: Twigの公式ドキュメント
たとえば、次のように使用できます。
{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}
小枝| striptagsの使用に関する問題は、マークアップではなくhtmlエンティティの二重エンコードであるため、
&
は&
になり、次に&amp;
– Berdir
この場合、 Twig Field Value モジュールを使用できます。このモジュールをインストールした後、フィールドレンダー配列から部分データにアクセスできます。例のために。
{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value
etc.プロジェクトページの詳細
{{ content.body | raw }}
twigテンプレートで生のフィールド値を取得する
これがだれにも役立つ場合は、フィールドTwigテンプレート内で、範囲の両方の部分ではなく、日時範囲フィールドの開始年のみを表示したいと思っていました。
だから私はこれで通常のフィールドテンプレートを上書きすることになりました:
{% 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 %}