使用 spatie/nova-tags-field 项目教程
1. 项目介绍
spatie/nova-tags-field
是一个用于 Laravel Nova 应用的标签字段扩展包。它允许你在 Nova 资源中轻松地添加、管理和显示标签。该扩展包基于 spatie/laravel-tags
包,提供了在 Nova 中管理标签的便捷方式。
2. 项目快速启动
安装
首先,确保你已经安装了 Laravel Nova 和 spatie/laravel-tags
包。然后,通过 Composer 安装 spatie/nova-tags-field
:
composer require spatie/nova-tags-field
配置
在你的模型中使用 Spatie\Tags\HasTags
特性:
use Illuminate\Database\Eloquent\Model;
use Spatie\Tags\HasTags;
class BlogPost extends Model
{
use HasTags;
}
在你的 Nova 资源中使用 Spatie\TagsField\Tags
字段:
namespace App\Nova;
use Laravel\Nova\Resource;
use Laravel\Nova\Http\Requests\NovaRequest;
use Spatie\TagsField\Tags;
class BlogPost extends Resource
{
// ...
public function fields(NovaRequest $request)
{
return [
// ...
Tags::make('Tags'),
// ...
];
}
}
使用
现在,你可以在 Nova 应用中查看和添加标签到 BlogPost
资源中。所有标签将保存在 tags
表中。
3. 应用案例和最佳实践
限制标签数量
如果你希望限制用户可以添加的标签数量,可以使用 limit()
方法:
Tags::make('Tags')->limit($maxNumberOfTags);
限制建议数量
默认情况下,标签字段会显示最多 5 个建议。你可以通过 limitSuggestions()
方法更改建议数量:
Tags::make('Tags')->limitSuggestions($maxNumberOfSuggestions);
使用标签类型
spatie/laravel-tags
包支持标签类型。你可以在 Nova 资源中指定标签类型:
Tags::make('Tags')->type('my-special-type');
4. 典型生态项目
spatie/laravel-tags
spatie/laravel-tags
是 spatie/nova-tags-field
的基础包,提供了标签管理的核心功能。它允许你在 Laravel 应用中轻松地创建、管理和查询标签。
Laravel Nova
Laravel Nova 是一个用于构建管理界面的工具,spatie/nova-tags-field
是其扩展包之一,提供了在 Nova 中管理标签的便捷方式。
通过以上步骤,你可以快速在 Laravel Nova 应用中集成和管理标签功能。