9Cells

spatie laravel-tags

Laravel에서 태그 기능을 구현한 패키지.

Type

태그들을 특정 타입으로 묶을 수 있다.

$model->syncTagsWithType(['태그1', '태그2'], '타입1');

위 코드에서 태그1태그2의 타입은 타입1이다.

위 코드의 모델에 타입이 없거나 다른 타입의 태그1을 추가 가능하다. 타입이 다르기 때문에 가능한 것이다.

$model->syncTags(['태그3', '태그4']);

이렇게 호출하면 model에는 태그3과 태그4가 태깅된다. syncTags는 태그 배열 그대로 모델에 태깅한다. 기존에 다른 태그가 있다면 사라진다.

어떤 모델에 태그3, 태그4가 태깅되어 있는데 태그5를 추가하는 경우 태그3, 태그4, 태그5를 syncTags하는 것이 태그3, 태그4, 태그5 중에 이미 태깅된 태그3, 태그4를 제외하고 나머지 새로 추가된 태그5만 태깅하는 것보다 쉬울 것이다.

syncTags는 타입이 없는 태그에 대해서만 영향을 준다. 모델에 타입이 있는 태그가 붙어있는 경우 syncTags를 호출해도 타입이 있는 기존 태그는 사라지지 않는다.