[英]Show blog post excerpt with Laravel
我正在尝试展示博客文章的excerpts
。 我可以用php
和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;
对不起,我来晚了,但希望它会帮助某人:
像这样使用它可能会抛出“找不到类‘Str’错误”:
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
类与Str::limit($string, $limit, $end)
,例如:
use \Illuminate\Support\Str;
/*...*/
Str::limit($myString, 50, '>>>');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.