回答:
{{ entity.field_name.value }}
真の生の値を取得するには、タグとエンコードが含まれます。
{{ node.body.value }}
<p>Batman & Robin</p>
{{ content.field_name.0 }}
タグとエンコーディングを差し引いた生の値を取得します。
{{ content.body.0 }}
Batman & Robin
生
特にユーザーが入力できるデータを出力している場合、このフィルターは可能な限り避けてください。Drupal 8の自動エスケープの詳細については、このページを参照してください。
rawフィルターは値を「安全」とマークします。つまり、自動エスケープが有効になっている環境では、rawが最後に適用されるフィルターである場合、この変数はエスケープされません。
たとえば、次を使用できます。
{{ node.body.value|striptags }}
{{ paragraph.field_text.value|striptags }}
twigのストリップタグの使用に関する問題は、マークアップではなくhtmlエンティティの二重エンコードであるため、&が&になり、次に&amp;になります。–ベルディール
<
を確認でき、>
正しく表示されます。アンパサンドは、おそらく出力する前にすでに単一エスケープされています。ただし、質問はプレーンテキストフィールドに関するものであり、テキストフィルターによって処理される書式設定されたテキストフィールドではありません。(誰かが本当にそれを望んでいる場合は、まだになります)(、生の値をこの尋ねない質問に答えるために.value
、セキュリティ上の理由から、小枝でエスケープ正しくシングルになりますん出力フォーマットのテキストフィールドフィルタリングされていないため)
&
あなたの例の出力は間違っています。これは、フィールドの内容がすでに一度エスケープされていない限り、自動エスケープでは発生しません)。
この場合、Twig Field Valueモジュールを使用できます。このモジュールをインストールすると、フィールドレンダー配列から部分データにアクセスできます。例えば
{{ content.field_name|field_value }}
content.field_image|field_target_entity.uri.value
など。プロジェクトページの詳細