【Laravel】
bladeで表示文字数を制限して末尾を"..."や"...続きを読む"に変更する方法
Str::limit()で表示文字数を制限する
投稿日 2021/07/02 更新日 2021/07/02
こんにちは。当サイトの管理者「元木皇天」です。
今回はLaravelの文字表示についての記事です。
DBなどから取得した文字列が長く、そのまま表示するとレイアウトが崩れてしまうなどの理由から、表示する文字数を制限して、入りきらない分を”...”や”...続きを読む”のようにしたいことがあります。
今回はLaravelのbladeファイルで表示する文字数を制限して、末尾を"..."や"...続きを読む"に変更する方法について解説いたします。
環境
Laravel:バージョン8.48.2
PHP:バージョン7.4.13
やりたいこと
表示する文字数制限して、はみ出た文字を”...”または”...続きを読む”に変更する
実装イメージ
・制限前の文字列
ABCDEFGHIJKLMNOPQRSTUVWXYZ
・10文字制限(末尾"...")
ABCDEFGHIJ...
・10文字制限(末尾"...続きを読む")
ABCDEFGHIJ...続きを読む
参考文献:Laravel 8.x 公式リファレンス
文字数制限をかける方法
Laravelで表示する文字数を制限するには、bladeファイル上に以下の記述をすることで制限することができます。
{{ Str::limit(第一引数, 第二引数, 第三引数) }}
第一引数:表示したい文字列(必須)
第二引数:表示したい文字数(必須)
第三引数:末尾に表示する文字列(任意)
では次の項で実際に使用してみましょう。
実例-文字数制限(…にする)
実際の例として文字数を10文字までしか表示させないようにします。
今回文字列制限をかける文字列は以下のアルファベットです。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Laravelのbladeに対して以下の記述をして表示文字数を制限します。補足ですが、第三引数を省略した場合、自動で”...”が末尾に追加されます。(第一引数に文字列を直接入れていますが、実際は変数が入ることが多いと思います。)
第三引数を省略する場合 {{ Str::limit('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 10) }} //表示文字列:ABCDEFGHIJ... 第三引数を省略しない場合 {{ Str::limit('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 10, '...') }} //表示文字列:ABCDEFGHIJ...
上記の場合、第三引数を設定してもしなくても同じ表示結果になります。
以下は実際にこのサイトで上記コードを実装した結果です。(当サイトはLaravelで作成されているので実行結果がそのまま出力されます。といっても、見た目上ではわからないと思いますが...。)
第三引数を省略する場合
ABCDEFGHIJ...
第三引数を省略しない場合
ABCDEFGHIJ...
実例-文字数制限(...続きを読むにする)
次は先ほどと同じように10文字制限をかけて、末尾を”...続きを読む”に変更してみましょう。
制限をかける文字列
ABCDEFGHIJKLMNOPQRSTUVWXYZ
実装方法は以下の通りです。
{{ Str::limit('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 10, '...続きを読む') }} //表示文字列:ABCDEFGHIJ...続きを読む
実際にこのサイトで実装して表示すると以下のようになります。(当サイトはLaravelで作成されているので実行結果がそのまま出力されます。といっても、これも見た目上ではわからないと思いますが...。)
ABCDEFGHIJ...続きを読む
まとめ
表示する文字数を制限したい場合は
{{ Str::limit() }}
を使用する