asseco-voice/laravel-tags

Laravel support for tags
6,809
Install
composer require asseco-voice/laravel-tags
Latest Version:v2.1.1
PHP:^8.1
License:MIT
Last Updated:Apr 25, 2025
Links: GitHub  ·  Packagist
Maintainer: Norgul

Tags

Purpose of this repository is to enable tags for any Laravel model.

Installation

Require the package with composer require asseco-voice/laravel-tags. Service provider will be registered automatically.

Setup

In order to use the package, migrate the tables with artisan migrate and add Taggable trait to model you'd like to have tag support on.

Standard CRUD endpoints are exposed for tag administration. Due to the fact that tags are a polymorphic relation, you have to provide your own controllers for attaching/detaching those tags to taggable models.

Example:

// Routes
Route::post('models/{model}/tags', [ModelTagController::class, 'store']);

// Controller
public function store(Request $request, Model $model): JsonResponse
{
    $ids = Arr::get($request->validated(), 'tag_ids', []);

    $model->tags()->sync($ids);

    return response()->json('success');
}

Extending the package

Publishing the configuration will enable you to change package models as well as controlling how migrations behave. If extending the model, make sure you're extending the original model in your implementation.

Related Packages

asseco-voice/laravel-blueprint-audit

Laravel support for additional blueprint methods

7,337 0
asseco-voice/laravel-containers

Adding container support to Laravel models

3,850 2