私はモデルを持っ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
。