codicastudio / tags-manager
一个随机的 Codica Studio 包。
Requires
- php: ^7.4 || ^8.0
- codicastudio/tags: ^1.0
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-25 13:48:11 UTC
README
此包包含一个 Nova 字段,用于向资源添加标签。底层使用 spatie/laravel-tags 包。
支持我们
通过观看我们的付费视频课程学习如何创建此类包
我们投入了大量资源来创建 一流的开放源代码包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感谢您从家乡寄来明信片,并注明您正在使用我们的哪个包。您可以在 我们的联系页面 找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙上。
要求
此 Nova 字段需要 MySQL 5.7.8 或更高版本。
安装
首先,您必须在您的 Laravel 应用程序中安装 spatie/laravel-tags。以下是该包的 安装说明。
接下来,您可以通过 composer 将此包安装到使用 Nova 的 Laravel 应用程序中
composer require spatie/nova-tags-field
用法
要使 Eloquent 模型可标记,只需将其添加到 \Spatie\Tags\HasTags
特性中即可
class BlogPost extends \Illuminate\Database\Eloquent\Model { use \Spatie\Tags\HasTags; ... }
然后您可以在 Nova 资源中使用 Spatie\TagsField\Tags
字段
namespace App\Nova; use Spatie\TagsField\Tags; class BlogPost extends Resource { // ... public function fields(Request $request) { return [ // ... Tags::make('Tags'), // ... ]; } }
现在您可以在 Nova 应用程序中的博客文章屏幕上查看和添加标签。所有标签都将保存在 tags
表中。
限制建议
默认情况下,在输入时标签字段将显示最多 5 个建议。如果您不想显示任何建议,则使用 withoutSuggestions()
标签。
Tags::make('Tags')->withoutSuggestions(),
您可以使用 limitSuggestions()
更改建议的数量。
Tags::make('Tags')->limitSuggestions($maxNumberOfSuggestions),
使用类型
底层标签包支持 标签类型。要使您的标签字段保存特定类型的标签,只需在将字段添加到 Nova 资源时附加类型名称。
// in your Nova resource public function fields(Request $request) { return [ // ... Tags::make('Tags')->type('my-special-type'), // ... ]; }
只允许一个标签
如果用户只能为您的资源选择一个标签,则可以调用 single
方法。
// in your Nova resource public function fields(Request $request) { return [ // ... Tags::make('Tags')->single(), // ... ]; }
该字段将以选择表单元素的形式呈现。它将填充已保存的标签名称。
处理标签
有关如何处理保存的标签的更多信息,请参阅 spatie/laravel-tags 的文档。
在 Nova 中管理标签
如果您要对保存的标签执行 CRUD 操作,只需为它创建一个 Nova 资源即可。以下是一个示例。
namespace App\Nova; use Illuminate\Http\Request; use Laravel\Nova\Fields\Text; use Spatie\Tags\Tag 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('Name')->sortable(), ]; } }
显示带有指向 Nova 资源链接的标签
在创建字段时,您可以使用 withLinkToTagResource
方法。
示例
Tags::make('Tags')->withLinkToTagResource() // The resource App\Nova\Tag will be used Tags::make('Tags')->withLinkToTagResource(\Custom\CustomTag::class) // The resource \Custom\CustomTag will be used
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 变更日志。
贡献
请参阅CONTRIBUTING获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件maintenance@codicastudio.com联系我们,而不是使用问题跟踪器。
致谢
渲染标签的Vue组件是基于Adam Wathan创建的标签Vue组件,如他在Advanced Vue Component Design课程中所示。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。