Laravel5でDBから取得したデータが改行されない

2016.07.13

Laravel5でハマったので備忘録です。
DBから取得したHTMLタグを含む文字列をビューで表示しようとしたら何故か改行してくれませんでした。

現象と原因

当初うまくいかなかった書き方がこちら

{{ nl2br(e( $html_text )) }}

色々と試して、結果うまくいったものがこちら。

{!! nl2br(e( $html_text )) !!}

違いは括弧が{{ name }}なのか{!! name !!}なのか。この子達は何が違うのでしょうか?

以下、調べた結果です。

{{ name }}
変数が存在していれば表示する。XSS攻撃を防ぐためhtmlentities関数を通している。
{!! name !!}
エスケープせずにデータを表示する。※XSS攻撃の危険がある

詳しくは参考にさせていただいた以下のサイトからご確認ください。
Bladeテンプレート 5.1 Laravel

今回も解決まで1時間くらいかけてしまいました。無念。

関連する記事

CATEGORY

ARCHIVE

NEW