asseco-voice/laravel-tags

Laravel 对标签的支持

v2.1.0 2023-12-05 10:23 UTC

This package is auto-updated.

Last update: 2024-09-05 14:02:32 UTC


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');
}

扩展包

发布配置将允许您更改包模型以及控制迁移的行为。如果扩展模型,请确保在实现中扩展原始模型。