如何串联$ tags中每个对象的名称?

时间:2018-12-08 16:12:15

标签: php laravel

当我上传图片时,有一个字段采用以下格式的标签:

tag1,tag2,tag3

然后我在每个逗号上展开这些标签,并将每个单独的标签插入数据库中。现在,我正在尝试做相反的事情,将所有标签放在$ tags中,然后为每个标签用逗号分隔$ tag-> name。例如:

在获得我的标签后:

$tags = Tag::whereHas('images', function($q) use ($id) {
    return $q->where('taggable_id', $id);
})->get();

$ tags有2个标签,名称分别为Summer和Winter。我试图以某种方式获取一个字符串,即“ Summer,W​​inter”。我不太确定该怎么做。任何提示将不胜感激。

2 个答案:

答案 0 :(得分:1)

这是您需要的示例。

$tags = Tag::whereHas('images', function($q) use ($id) {
    return $q->where('taggable_id', $id);
})->selectRaw("GROUP_CONCAT(name) as group_names")->get();

有时,我们需要使用Raw查询对数据执行操作。尝试这个。我认为这将为您提供所需的结果。

答案 1 :(得分:1)

如果您获得$ tags并且它是Illuminate\Database\Eloquent\Collection实例,则可以使用此代码

$tagConcateNames = $tags->implode('name', ',')