Owl\Repositories\Fluent\TagRepository::syncTags PHP Метод

syncTags() публичный Метод

sync tags
public syncTags ( object $item, array $tag_ids ) : void
$item object
$tag_ids array
Результат void
    public function syncTags($item, $tag_ids)
    {
        // item_idに紐づくcurrent_tag_idsを取得
        $current_tag_ids_raw = $this->getByItemId($item->id);
        $current_tag_ids = array();
        foreach ($current_tag_ids_raw as $current_tag) {
            $current_tag_ids[] = (string) $current_tag->tag_id;
        }
        // attachとdetachするtag_idを取得
        $new_tags = array_merge(array_diff($tag_ids, $current_tag_ids), array());
        $delete_tags = array_merge(array_diff($current_tag_ids, $tag_ids), array());
        $this->attachTags($item->id, $new_tags);
        $this->detachTags($item->id, $delete_tags);
    }