2012-03-13 4 views
1

WYWSWIG対応のテキストエリアからデータを取り込むデータベースがあります。テキストエリアの多くは基本的にテキストエリアの多くを意味します。symfonyビューでエコーしたときにHTMLタグが自動的にエスケープされないようにします

info data text info data text stored in the table column, I have <p>info data<strong>info data</strong><em>text</em></p> encoded in there. 

Doctrineを使用してdbクエリを実行すると、この情報は自分のアクションに保持され、テンプレートに渡される変数にラップされます。この時点で、レンダリング時にタグは保持されます。例として、テキストは、目的のHTMLマークアップ効果ではなく、そのままタグとしてレンダリングされます。これは明らかに、文字エスケープが起こっていることを意味します。

この問題を緩和する方法がわかりません。しかし、当分の間は十分な解決策を見つけました。私はDoctrineクエリをアクションではなくテンプレートで実行します。この場合、エスケープすることはありません。目的のHTMLマークアップ自体がレンダリングされます。このことから明らかな意味は、クエリ変数がアクションからテンプレートに渡されているときに、何らかの種類の内部のSymfony文字エスケープが行われていることです。

答えて

2

Symfonyは、ビューに渡されるすべての変数をデフォルトでsfOutputEscaperインスタンスにラップします。エスケープされていない値を取得するには、$var->getRawValue()を表示します。

関連する問題