asseco-voice / laravel-tags
Laravel support for tags
Installs: 5 260
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 7
Forks: 0
Open Issues: 3
Requires
- php: ^8.1
- asseco-voice/laravel-common: ^3.0
- laravel/framework: ^10.0
Requires (Dev)
- doctrine/dbal: 3.5
- fakerphp/faker: ^1.9.1
- mockery/mockery: ^1.4.4
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-03-03 03:19:55 UTC
README
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.