在Laravel中内插查询中将''替换为'-'

时间:2018-07-16 20:11:30

标签: php laravel-5

我有这段代码可以获取文章的所有子类别,并将它们作为CSS类包含

<article class="{{ strtolower($a->subcategories->pluck('name')->implode(' ')) }} article-item">

其中$ a是Article模型。

这很好用,除非其中一个类别具有多个单词(我的客户最近提出请愿)。

示例:

类别:“家”,“办公室”和“存档和存储”。

我得到的:

<article class="home office archive and storage article-item">

我想要的:

<article class="home office archive-and-storage article-item">

我希望我的要求是明确的,如何为每个类别内插多个单词?我试图在查询生成器的各个部分上内爆和str_replace(),但我做对了。

2 个答案:

答案 0 :(得分:1)

strtolower(implode(" ", str_replace(" ", "-", $a->subcategories->pluck('name')->all())));

这看起来可能不太好,但是应该可以。至少,它对我来说适用于数组["a", "b a"](产生“ a b-a”输出)。

也许可以帮助您?

答案 1 :(得分:0)

您需要将带有空格的类别名称映射到带有破折号的类别名称。使用Laravel系列,这非常容易。只要做:

{{ strtolower($a->subcategories->pluck('name')->map(function ($c) { return str_replace(" ", "-", $c); })->implode(' ')) }}

有关收藏的更多信息,您可以阅读here