asseco-voice / laravel-tags
Laravel 对标签的支持
v2.1.0
2023-12-05 10:23 UTC
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
README
标签
该仓库的目的是为任何 Laravel 模型启用标签功能。
安装
使用 composer require asseco-voice/laravel-tags
安装该包。服务提供者将自动注册。
设置
为了使用该包,使用 artisan migrate
迁移表,并将 Taggable
特性添加到您希望有标签支持的模型上。
标准的 CRUD 端点被暴露用于标签管理。由于标签是多态关系,您必须提供自己的控制器来附加/移除这些标签到可标签化的模型。
示例
// 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'); }
扩展包
发布配置将允许您更改包模型以及控制迁移的行为。如果扩展模型,请确保在实现中扩展原始模型。