当我上传图片时,有一个字段采用以下格式的标签:
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,Winter”。我不太确定该怎么做。任何提示将不胜感激。
答案 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', ',')