palauaandsons / nova-tags-field
为 Nova 应用程序提供标签字段的软件包,使用 cartalyst/tags
Requires
- cartalyst/tags: >=8.0
- laravel/nova: *
Requires (Dev)
- orchestra/testbench: ^7.7
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-30 01:43:46 UTC
README
此软件包包含一个 Nova 字段,用于向资源添加标签。底层使用 cartalyst/tags 软件包。
此软件包基于 spatie/nova-tags-field。所有功劳归功于 Spatie 团队。
安装
首先,您必须将 cartalyst/tags 安装到您的 Laravel 应用程序中。有关该软件包的安装说明,请参阅 此处。
接下来,您可以通过 composer 在使用 Nova 的 Laravel 应用程序中安装此软件包。
composer require palauaandsons/nova-tags-field
用法
要使 Eloquent 模型可标记,请添加 \Cartalyst\Tags\TaggableTrait
特性和实现 \Cartalyst\Tags\TaggableInterface
接口。
use Cartalyst\Tags\TaggableTrait; use Cartalyst\Tags\TaggableInterface; use Illuminate\Database\Eloquent\Model; class BlogPost extends Model implements TaggableInterface { use TaggableTrait; ... }
接下来,您可以在 Nova 资源中使用 PalauaAndSons\TagsField\Tags
字段。
namespace App\Nova; use PalauaAndSons\TagsField\Tags; class BlogPost extends Resource { // ... public function fields(Request $request) { return [ // ... Tags::make('Tags'), // ... ]; } }
现在您可以在 Nova 应用程序中的博客文章屏幕上查看和添加标签。
限制建议
默认情况下,标签字段在输入时会显示最多 5 个建议。如果您不想显示任何建议,请在 withoutSuggestions()
上标记。
Tags::make('Tags')->withoutSuggestions(),
您可以使用 limitSuggestions()
修改建议的数量。
Tags::make('Tags')->limitSuggestions($maxNumberOfSuggestions),
仅允许一个标签
如果用户只能为您的资源选择一个标签,您可以使用 single
方法。
// in your Nova resource public function fields(Request $request) { return [ // ... Tags::make('Tags')->single(), // ... ]; }
该字段将以选择表单元素的形式呈现。它将由已保存的标签名称填充。
处理标签
有关如何处理已保存的标签的更多信息,请参阅 cartalyst/tags 的文档。
在 Nova 中管理标签
如果您想在保存的标签上执行 CRUD 操作,只需为它创建一个 Nova 资源即可。以下是一个示例。
namespace App\Nova; use Illuminate\Http\Request; use Laravel\Nova\Fields\Text; use Cartalyst\Tags\IlluminateTag as TagModel; class Tag extends Resource { public static $model = TagModel::class; public static $title = 'name'; public static $search = [ 'name', ]; public function fields(Request $request) { return [ Text::make('Namespace')->sortable()->hideWhenUpdating(), Text::make('Name')->sortable(), Text::make('Slug')->sortable(), ]; } }
测试
phpunit
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件 isern@palauaandsons.com 而不是使用问题跟踪器。
鸣谢
渲染标签的 Vue 组件基于由 Adam Wathan 创建的标签 Vue 组件,如在他的出色课程 Advanced Vue Component Design 中所示。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。