teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

2回答

3173閲覧

Laravelでデータベースから取ってきた値を改行したい

izumin123

総合スコア37

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2022/04/14 04:19

編集2022/04/14 05:17

0

0

前提

Laravelで管理システムを作っています。

実現したいこと

データベースから取ってきた値を理想のように改行したい。
参考:https://techracho.bpsinc.jp/wingdoor/2020_06_11/92793

該当のソースコード

tableがテーブル名でdate1がカラム名です。

view.blade.php

1<p>{!! nl2br(e($table->data1)) !!}</p>

現状

1行目\n2行目\n3行目

理想

1行目
2行目
3行目

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/04/14 04:25 編集

データ内容はどうなっているのでしょう 「¥nという文字列」と「改行コード」は別物です。
izumin123

2022/04/14 04:26

$table->data1 = '1行目\n2行目\n3行目' となっています。
guest

回答2

0

ベストアンサー

$table->data1 = '1行目\n2行目\n3行目'

PHPの文字列の問題ですが、シングルクォーテーションでは「そういう文字列」となり、改行コードの役割は発揮しません。
https://qiita.com/sola-msr/items/0814c4470dcbbd1f5ec3

ダブルクォーテーションにしましょう。
それか、シングルクォーテーション使いたいならこう保持する

PHP

1$data = '1行目 22行目 33行目';

投稿2022/04/14 04:57

編集2022/04/14 04:58
m.ts10806

総合スコア80888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izumin123

2022/04/14 05:06

データベースから値を取ってきているのですが、勝手にシングルクォテーションとして扱われている?みたいです。 ダブルクォテーションとしてデータベースからデータを取ってくる?などの方法はないでしょうか?
izumin123

2022/04/14 05:09

また、シングルクォテーションで改行してデータベースに保存してみたのですが、 データを取ってきてビューで表示すると、改行されずその代わりに空白がありました。 表示例: 1行目 2行目 3行目
m.ts10806

2022/04/14 05:24

>$table->data1 = '1行目\n2行目\n3行目' ではこれはどこに書いてあるものですか?これしかないと「文字列をシングルクォートで変数に保管している」という印象しか受けません。 DBから取得したときは単なる文字列。シングルとかダブルとかないです。 保存時に何か余計なことをしている可能性はあります。 改行コードとなるものが可視化されてる時点でおかしいので。
izumin123

2022/04/14 05:42

シーダーファイルでDBに保存するときに、このような感じで保存しました。 $table->data1 = '1行目\n2行目\n3行目'
m.ts10806

2022/04/14 05:48

そこが原因です。
izumin123

2022/04/14 05:52

なるほど。ダブルクォテーションに変更し、再度DBに保存したら解決しました。 ありがとうございました!
m.ts10806

2022/04/14 05:56

改行コードは環境依存があるので、書くより実際に改行入れた文字列にするか定数PHP_EOLを使ったほうが間違いは減ると思います。
izumin123

2022/04/14 05:58

なるほど、参考にします。
guest

0

改行は <br> です、ってはなしかな。。

投稿2022/04/14 04:30

y_waiwai

総合スコア88173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問