Php 更换'';对于'-';Laravel中的内部内爆查询

Php 更换'';对于'-';Laravel中的内部内爆查询,php,laravel-5,Php,Laravel 5,我有一段代码,可以获取文章的所有子类别,并将它们作为CSS类包含 <article class="{{ strtolower($a->subcategories->pluck('name')->implode(' ')) }} article-item"> 其中$a是一个文章模型 这非常有效,除非其中一个类别有多个单词(我的客户最近的请愿书) 例如: 类别:“主页”、“ofice”和“存档和存储” 我得到的: <article class="home o

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

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

其中$a是一个文章模型

这非常有效,除非其中一个类别有多个单词(我的客户最近的请愿书)

例如:

类别:“主页”、“ofice”和“存档和存储”

我得到的:

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

我想要什么:

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

我希望我的要求是明确的,我如何为我的每个类别内爆多个单词?我曾尝试在查询生成器的各个部分上进行内爆和str_replace(),但都做不好。

strtolower(内爆(“,str_replace(“,”-”,$a->subcategories->pull('name')->all())

这看起来可能不太好,但应该能奏效。至少,它在数组
[“a”,“ba”]
(产生“ab-a”输出)中对我有效


也许它可以帮助您?

您需要将带有空格的类别名称映射到带有破折号的类别名称。有了Laravel系列,一切都非常简单。只要做:

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

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

您有什么疑问?我想很清楚?我想“查询”这个词不合适。我想用空格替换单个类别名称上的破折号。这就是allHi Danielius,不幸的是这给我带来了一个内爆():无效参数错误。我猜这是因为$a->subcategories->pull('name')是一个数组而不是一个数组String@TianRB也许现在?太好了!非常感谢。