前提・実現したいこと
現在laravelで掲示板アプリを作成しているlaravel初心者です。
今までは、入力したプレーンテキストを改行ありでview表示されるようにしていたのですが、
今回入力されたHTMLコードを改行ありでview表示させようとしています、
HTMLコードの場合、プレーンテキストの場合のコードからエスケープ処理を除いてあげないと、HTMLタグが表示されてしまうので、e()を除くことにしました。
しかし、e()を除くとテキストの表示される位置が変わるようです。(詳細は発生している問題・エラーメッセージ参照お願いします。)
e()を除くと、なぜ文字の表示される位置が変わるのかご教示いただけないでしょうか?また文字位置をe()ありの場合と同じようにするには、どこを修正すべきでしょうか?
自分としては、文字位置がe()ありの場合がいいと考えております。
{!! nl2br(e($post->body)) !!} //プレーンテキストの場合
{!! nl2br($post->body) !!} //HTMLコードの場合
発生している問題・エラーメッセージ
{!! nl2br(e($post->body)) !!}
{!! nl2br(e($post->body)) !!}の場合(e()があるので、投稿内容(赤枠)にタグがついて出力されています。文字位置は特に問題ないです。)
{!! nl2br($post->body) !!}の場合(投稿内容(赤枠)のが下に寄って表示されています。)
補足情報(FW/ツールのバージョンなど)
Laravel Framework 7.30.2
MySQL 8.0.21 Homebrew
PHP 7.4.14
Docker 19.03.13
回答1件
あなたの回答
tips
プレビュー