16

私はSymfony2.1を使用しており、デフォルトのconfig.ymlを使用しています

ドキュメントによると

  {# but static strings are never escaped #}
  {{ '<h3>foo</h3>'|trans }}

しかし、それをコピーして空のテンプレートに貼り付けると(追加の自動エスケープなどを使用せずに)、エスケープされた文字列を取得しました<h3>foo</h3>。私は何を間違えますか?

4

2 に答える 2

19

小枝の raw フィルターで試してみてください:

{{ '<h3>foo</h3>' | trans | raw }}

ただし、rawユーザー入力を処理している場合は、フィルターを使用しないでください。Symfony の作成者によると、クロスサイト スクリプティング攻撃が可能になります。安全だがより面倒な代替手段については、この同様の質問を参照してください。

于 2012-11-22T18:45:34.817 に答える
2

翻訳者は通常それを壊すため、翻訳で HTML を保持することは間違っています。しかし、本当に必要な場合:

{% trans %}<h3>foo</h3>{% endtrans %}

https://github.com/symfony/symfony/issues/2713#issuecomment-12510417

于 2016-08-24T08:20:11.823 に答える