Слова предела, а не символы в Laravel - PullRequest
0 голосов
/ 26 ноября 2018

Я использую Laravel 5.7, и мне было интересно, как правильно ограничить количество слов, а не символов, в описании, которое я извлекаю из базы данных и выводлю в Blade / view.

В настоящее время у меня есть эта работа, добавив следующее в мой файл Blade (обратите внимание, класс Str находится в Blade / view):

@php use Illuminate\Support\Str; @endphp
{!! (nl2br(e(Str::words($test->testimonial, '25')))) !!}

Вышеприведенное ограничивает мой абзац 25 словами,но я понимаю, что, вероятно, мне следует использовать класс Str в моем контроллере, а не Blade.

Когда я добавляю use Illuminate\Support\Str; в моем контроллере, а не Blade, я получаю ошибку, что Str отсутствует.

Контроллер

use App\Testimonial;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

...

public function index()
{
    $testimonial = Testimonial::all();
    return view('testimonials.index',compact('testimonial'));
}

Как я могу использовать класс Str в контроллере вместо Blade?

1 Ответ

0 голосов
/ 26 ноября 2018

Check Accessor and Mutator

class Testimonial extends Model
{
    public function getTestimonialExcerptAttribute()
    {
        return Str::words($this->testimonial, '25');
    }
}

и затем вы можете использовать его на своих шаблонах блейдов или контроллерах ..

@foreach($testimonials as $testimonial)
{{ $testimonial->testimonial_excerpt }}
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...