LoginSignup
1
4

More than 3 years have passed since last update.

【Laravel】指定の文字数以上の文字列を表示するとき、「...」としたい場合

Last updated at Posted at 2020-11-25

はじめに

現在、社内向け質問アプリケーションを制作中です。
日々こつこつと機能を追加したり、改善したりしています。
こちらに開発からデプロイまでについてまとめているので、よろしければ是非見てみてください。
【未経験・独学】Laravelでアプリケーションの開発からAWSを用いたデプロイまで

今回は、長い文章に対して指定の文字数を超えた場合は、「...」と表示させたいと思い調べたことをここに記録します。

現状

現状はこのように、コメント文が全部表示されています。そのため、コメント欄の箇所のみバランスが悪くなっている。

コメント欄.PNG

そこで、100文字以上は...と表示させてコメント欄のサイズをある程度一定にしたいと思う。
調べてみたところ、ヘルパ関数のStr::limit()を使用することで解決ができると分かった。

Str::limit()とは?

Str::limit()とは、Laravelで用意されているグローバルヘルパ関数の一つである。
こちらの関数を使うことで指定した長さへ文字列を切り詰めることが出来る。

使い方としては、第一引数に対象の文字列、第二引数に指定の文字数、第三引数に最長文字数を超えた場合に末尾へ追加する文字列を指定する。
参考:Laravel 7.x ヘルパ

Str::limit()を使う前は、{{$reply->body}}と記載している。
Str::limit()を用いると、このようになる。

{{\Illuminate\Support\Str::limit($reply->body, 100, '...')}}

このようにStr::limit()を用いることで、コメントの文字数を一定にすることが出来ました。
コメント欄2.PNG

※注意点としては、指定する数字はマルチバイトを考慮しなければいけないということ。
日本語は、マルチバイト文字(2バイト以上のデータ量で表すもの)なため以下のようになってしまう。

Str::limit('確認用', '3', '...') //確...となる

参考
マルチバイト文字 【 多バイト文字 】
全142種類!Laravelヘルパー関数実例

まとめ

今回は、Laravelで指定の文字数以上の時、...としたい場合についてまとめました。
公式ドキュメントを見てみると、他にも沢山のヘルパ関数があったので色々見てみようと思います。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4