Laravel textarea 改行反映
はじめに
投稿するテキストエリア内で改行したのに表示される画面だと改行が反映されてない。
割と簡単にできたのメモ。
Laravelのbladeテンプレート使います
<p>{{$post->body}}</p>
Laravelの二重中括弧は、htmlspecialchars()関数を通した表示になっています。
XSS対策を初めからやってくれてるんですね。
つまり{{$post->body}}
= echo htmlspecialchars($post->body)
てことです。
これを踏まえて、改行を表示していく。
PHPの nl2br()関数
この関数を使えば 改行がある位置に改行を示すHTMLタグを挿入することができる。
なので
nl2br(htmlspecialchars($post->body))
これでいける!と思いきやこれだとうまくいきません。
二重括弧に入れているのでエスケープ処理が実施されてしまって
ただの文字列として表示されちゃう。
bladeテンプレートエンジンでは、エスケープ処理をしないデータ表示の構文がある。
{!! !!}
これで囲んじゃえばいいだけです!
まとめ
以上から
{!! nl2br(htmlspecialchars($post->body)) !!}
これOk。
Author And Source
この問題について(Laravel textarea 改行反映), 我々は、より多くの情報をここで見つけました https://qiita.com/kenchi253/items/f521e0a06d9e532dfec0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .