我正在使用Laravel 5.7,想知道在从数据库中提取并输出到Blade / view的描述中,限制单词而不是字符的正确方法是什么。
我目前正在通过在Blade文件中添加以下内容来进行此项工作(注意Str /类在Blade /视图中):
@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? p>
答案 0 :(得分:4)
class Testimonial extends Model
{
public function getTestimonialExcerptAttribute()
{
return Str::words($this->testimonial, '25');
}
}
然后您可以在刀片模板或控制器上使用它。
@foreach($testimonials as $testimonial)
{{ $testimonial->testimonial_excerpt }}
@endforeach