使用 Laravel 显示博客文章摘录
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19766636/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Show blog post excerpt with Laravel
提问by 303K
I'm trying to show the excerpts
from blog posts. I am able to do this with php
and mysql
. However, I am wondering if there is a more 'friendly' way of doing this within the Laravel framework.
我正在尝试展示excerpts
来自博客文章的内容。我可以用php
and做到这一点mysql
。但是,我想知道在 Laravel 框架内是否有一种更“友好”的方式来做到这一点。
Thanks!
谢谢!
回答by Aatish Sai
You can do it using the method words
您可以使用该方法来完成 words
Default is:
默认为:
words($value,$words = 100, $end='...');
You can implement it like this
你可以像这样实现它
Str::words($post->body);
Str::words($post->body,10); //will show first 10 words
回答by Muhammad Sheraz
Sorry I am very late but hope that it will help someone:
对不起,我来晚了,但希望它会帮助某人:
Using it like this may throw "Class 'Str' not found error":
像这样使用它可能会抛出“找不到类‘Str’错误”:
Str::words($post->body,10);
Use along with complete namespace, like this:
与完整的命名空间一起使用,如下所示:
\Illuminate\Support\Str::words($post->body, 10);
OR with dots:
或带点:
\Illuminate\Support\Str::words($post->body, 10,'...');
OR register the function as Facade in config/app.php, try adding it like this way:
或者在config/app.php 中将该函数注册为 Facade ,尝试像这样添加它:
'aliases' => [
...
'Str' => Illuminate\Support\Str::class,
...
]
And then use Str::any where!, and hence you are free you use: Str::words($post->body,10);
然后使用Str::任何地方!,因此您可以自由使用: Str::words($post->body,10);
Need short and neat solution, just use Laravel's str_limit()helper function:
需要简洁的解决方案,只需使用 Laravel 的str_limit()辅助函数:
str_limit($post->body, 10);
OR
或者
str_limit($post->body, 10,'...');