繁体   English   中英

使用 Laravel 显示博客文章摘录

[英]Show blog post excerpt with Laravel

我正在尝试展示博客文章的excerpts 我可以用phpmysql做到这一点。 但是,我想知道在 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_limit

在 PHP 文件中:

str_limit($value, $limit = 100, $end = '...')

刀片模板文件中:

{{ str_limit($value, $limit = 100, $end = '...') }}

我看到从4.25.6版本都可以使用

参考

上面的一些答案提到了 Str 类,它已从 laravel 核心中删除并移至新的 helpers 包中。 如 Laravel v6.x 升级指南中所述。 https://laravel.com/docs/6.x/upgrade#helpers

“所有str_array_助手都已移至新的laravel/helpers Composer 包并从框架中删除。如果需要,您可以更新对这些助手的所有调用以使用Illuminate\\Support\\StrIlluminate\\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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM