我有Post
和Tag
模型
为了给帖子添加标签,我有:
public function addTag($tag) // $tag is string
{
$slug = Str::slug($tag);
$t = Tag::where("url", $slug)->first();
if(!$this->in_array_field($slug, 'name', $this->tags))
{
if(!isset($t))
{
$t = new Tag;
$t->name = $tag;
$t->url = $slug;
$t->count = 1;
}
else
{
$t->increment('count');
}
$this->tags()->save($t);
}
return $t->id;
}
添加所有标签后,我调用sync
以删除不再存在的标签
$this->tags()->sync($tagsIds); // $this is Post model
一切正常,但如何减少分离标签count
?
是否有任何处理程序或我应该合并数组并比较,如果不在旧集合中 -attach
并且increase
,不在新集合中 -detach
或者decrease
完全以另一种方式。