我有这段代码可以获取文章的所有子类别,并将它们作为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(),但我做对了。
答案 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