我正在尝试从博客帖子中显示excerpts
。我可以使用php
和mysql
执行此操作。但是,我想知道在Laravel框架内是否有更“友好”的方式。
谢谢!
答案 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 = '...') }}
答案 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/helpers
和Illuminate\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, '>>>');