用Laravel显示博客文章摘录

时间:2013-11-04 11:19:39

标签: php laravel

我正在尝试从博客帖子中显示excerpts。我可以使用phpmysql执行此操作。但是,我想知道在Laravel框架内是否有更“友好”的方式。

谢谢!

5 个答案:

答案 0 :(得分:11)

您可以使用words

方法完成此操作

默认为:

 words($value,$words = 100, $end='...');

你可以像这样实现它

Str::words($post->body);

Str::words($post->body,10); //will show first 10 words

答案 1 :(得分:9)

对不起,我很迟,但希望它会帮助某人:

像这样使用它可能会抛出“Class'Str'找不到错误”:

Str::words($post->body,10);

与完整名称空间一起使用,如下所示:

\Illuminate\Support\Str::words($post->body, 10);

OR点:

\Illuminate\Support\Str::words($post->body, 10,'...');

或者在 config / app.php 中将该功能注册为Facade,尝试像这样添加:

'aliases' => [
...
        'Str' => Illuminate\Support\Str::class,
...
]

然后使用 Str :: 任何地方!,因此您可以免费使用: STR ::字($后>主体,10);

只需使用Laravel的str_limit()辅助函数

str_limit($post->body, 10);

str_limit($post->body, 10,'...');

答案 2 :(得分:0)

您可以轻松使用str_limit

在PHP文件中:

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

Blade Templates个文件中:

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

我看到这可以从版本4.25.6

Reference

答案 3 :(得分:0)

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

“所有https://graph.microsoft.com/v1.0/users/UserId/messages?$filter=receivedDateTime gt secondSyncTime&$orderby=receivedDateTime&$top=125 str_助手都已移至新的array_ Composer软件包中,并已从框架中删除。如果需要,您可以更新对这些助手的所有调用以使用laravel/helpersIlluminate\Support\Str类。或者,您可以将新的laravel / helpers包添加到您的应用程序中,以继续使用这些助手:“

Illuminate\Support\Arr

只需通过Composer安装它,它就可以正常工作。

答案 4 :(得分:0)

您可以将 \Illuminate\Support\Str 类与 Str::limit($string, $limit, $end) 一起使用,例如:

use \Illuminate\Support\Str;
/*...*/
Str::limit($myString, 50, '>>>');