当前位置: 首页 > 知识库问答 >
问题:

截断Laravel刀片模板中的字符串

冀冯浩
2023-03-14

Laravel中的刀片模板是否有类似Smarty的截断修改器?

我知道我可以在模板中写出实际的php,但我正在寻找更好的东西来编写(我们不要讨论整个php是一个模板引擎)。

例如,我在寻找这样的东西:

{{ $myVariable|truncate:"10":"..." }}

我知道我可以通过作曲家使用像树枝这样的东西,但我希望Laravel本身具有内置功能。

如果没有,可以像Smarty提供的那样创建自己的可重用修饰符。我喜欢Blade不会过度使用所有语法,但我认为truncate是一个非常方便的函数。

我正在使用Laravel 4。

共有3个答案

欧阳翔
2023-03-14

编辑:这个答案是在Laravel4测试版发布的,当时Str类不存在。现在有一个更好的方法在拉雷维尔4-这是达斯汀的答案如下。由于SO规则,我无法删除此答案(不允许我删除)

刀片本身不具备该功能。

在Laravel 3中,有一个Str类,您可以这样做:

{{ Str::limit($myVariable, 10) }}

在这个阶段,我不相信Str类在Laravel4中,但是这里有一个端口,您可以将它包含在composer中,以添加到您自己的项目中

段志
2023-03-14

Laravel 4有Str::limit,它将截断到精确的字符数,还有Str::words,它将截断单词边界。

退房:

  • http://laravel.com/api/4.2/Illuminate/Support/Str.html#method_limit
卫华奥
2023-03-14

在拉威尔4号

在Laravel5.8以上版本中,您可以使用Str::limithelper。

//For Laravel 4 to Laravel 5.5
{{ str_limit($string, $limit = 150, $end = '...') }}
//For Laravel 5.5 upwards
{{ \Illuminate\Support\Str::limit($string, 150, $end='...') }}

有关更多Laravel辅助函数http://laravel.com/docs/helpers#strings

 类似资料:
  • 问题内容: 我正在阅读Laravel Blade 文档,但无法弄清楚如何在模板内分配变量以供以后使用。我不能这样做,因为那会回显“任何内容”,而我不希望那样。 我知道我可以做到,但这并不优雅。 在Blade模板中是否有更好,更优雅的方法来做到这一点? 问题答案: 不建议在视图中进行操作,因此没有刀片标签。如果您确实想在刀片视图中执行此操作,则可以在编写时打开一个php标签,也可以注册一个新的刀片标

  • 我发现非常奇怪的情况。我有一些结果的集合,我想抓住每个结果保存在缓存信息。为此,我有一个缓存类,它有一个静态函数get()。不幸的是,我没有收到任何东西,当我在我的刀片模板的Foreach循环中调用它。 如果我在控制器内调用相同的函数,则显示所需的信息,但与上面的示例不同。 为什么呢?

  • 我正在为一个在Laravel中完成的站点编写代码,我知道不建议在Blade模板中编写PHP代码,但在这个例子中,我的可用时间有限。 中间的PHP代码不起作用?

  • 在我的观点中,我扩展了一个刀片模板,它充当我的主模板。我有一个ViewComposer设置,它为这个模板提供了许多变量。 我遇到了一种情况,需要在是启动函数的页面。 通过ViewComposer传递的变量是否达到初始视图的范围?或者我需要创建另一个ViewComposer来传递相同的变量。 这最终给了我一个未定义的变量错误。

  • 我在刀片模板中有一个循环foreach,我在其中打印来自特定模型的数据,问题是我无法获得“$pedido”的值- 奇怪的是当我给这个“$pedido”编码时- 但是编码这个“$pedido- 数据从控制器发送: 另一件奇怪的事情是,我有相同的代码和不同的模型,它是工作的。 提前感谢您的帮助

  • 在我的模板中,我有以下内容: 在这篇文章中,我想突出显示字符串中的所有单词 所以我想我创建了一个新的刀片指令: 错误:缺少参数2 发现指令不包含2个参数。我尝试了所有我能找到的解决办法,但没有一个奏效。它们总是以普通字符串的形式返回参数,甚至不传递实际值。 我尝试添加一个助手函数,如下所述:https://stackoverflow.com/a/32430258/928666.不起作用: 错误:未