我正在尝试显示excerpts
来自博客文章的内容。我可以用php
and做到这一点mysql
。但是,我想知道在 Laravel 框架中是否有更“友好”的方式来做到这一点。
谢谢!
您可以使用方法来做到这一点words
默认为:
words($value,$words = 100, $end='...');
你可以像这样实现它
Str::words($post->body);
Str::words($post->body,10); //will show first 10 words
如果出现任何错误,例如 Str 类未找到,请使用以下语句
use Illuminate\Support\Str;
对不起,我很晚了,但希望它会帮助某人:
像这样使用它可能会抛出“Class 'Str' not found error”:
Str::words($post->body,10);
与完整的命名空间一起使用,如下所示:
\Illuminate\Support\Str::words($post->body, 10);
或带点:
\Illuminate\Support\Str::words($post->body, 10,'...');
或者在config/app.php中将函数注册为 Facade ,尝试像这样添加它:
'aliases' => [
...
'Str' => Illuminate\Support\Str::class,
...
]
然后在任何地方使用Str::!,因此你可以自由使用: Str::words($post->body,10);
需要简洁的解决方案,只需使用 Laravel 的str_limit()辅助函数:
str_limit($post->body, 10);
或者
str_limit($post->body, 10,'...');
上面的一些答案提到了 Str 类,该类已从 laravel 核心中删除并移至新的 helpers 包。如 Laravel v6.x 升级指南中所述。 https://laravel.com/docs/6.x/upgrade#helpers
“所有str_
和array_
助手都已移至新的laravel/helpers
Composer 包并从框架中删除。如果需要,您可以更新对这些助手的所有调用以使用Illuminate\Support\Str
和Illuminate\Support\Arr
类。或者,您可以将新的 laravel/helpers 包添加到您的应用程序中继续使用这些助手:"
composer require laravel/helpers
只需通过 Composer 安装它,它应该可以正常工作。
您可以使用\Illuminate\Support\Str
class with Str::limit($string, $limit, $end)
,例如:
use \Illuminate\Support\Str;
/*...*/
Str::limit($myString, 50, '>>>');