Symfony2 twigでnl2brを使って改行する

ググる力がないのかSymfonyの記事が全然出て来ないのでメモ。

古い記事がヒットするもnl2brについては書かれておらずnl2brはないものとして代替手段が書かれていた。

しかし最新のtwigにはいくつもフィルタが追加され、その中にnl2brもバッチリ収録されている。

 

テキストエリアからPOSTしたデータをそのままMySQLなんかのデータベースに突っ込んでいても、

{{ str|nl2br }}

と書くだけで改行をそのまま出力してくれる。

 

これまでstr_replaceを使ってわざわざ改行コードを<br />に変換させた上で、

{% autoescape false %}{{ str }}{% endautoescape %}なんかしてましたがnl2brさえ使えれば一発OK!

 

しかし、複数のフィルタを使おうとするとフィルタ同士の相性や順番の問題でおかしなことになったりする。

 

それはまた別の話なので別エントリーにて。