はじめに
現在、社内向け質問アプリケーションを制作中です。
日々こつこつと機能を追加したり、改善したりしています。
こちらに開発からデプロイまでについてまとめているので、よろしければ是非見てみてください。
【未経験・独学】Laravelでアプリケーションの開発からAWSを用いたデプロイまで
今回は、長い文章に対して指定の文字数を超えた場合は、「...」と表示させたいと思い調べたことをここに記録します。
現状
現状はこのように、コメント文が全部表示されています。そのため、コメント欄の箇所のみバランスが悪くなっている。
そこで、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バイト以上のデータ量で表すもの)なため以下のようになってしまう。
Str::limit('確認用', '3', '...') //確...となる
参考
・マルチバイト文字 【 多バイト文字 】
・全142種類!Laravelヘルパー関数実例
まとめ
今回は、Laravelで指定の文字数以上の時、...としたい場合についてまとめました。
公式ドキュメントを見てみると、他にも沢山のヘルパ関数があったので色々見てみようと思います。