bernhardh / nova-icon-select
laravel nova 图标选择字段
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2023-06-09 02:08:25 UTC
README
这是一个laravel nova字段,用于从图标集中选择图标。图标集由IconProvider
定义,因此您可以定义自己的集。该软件包为FontAwesome 5 Free
预定义了一个IconProvider
。
截图
编辑
索引
详细信息
安装
使用composer安装此软件包
composer require bernhardh/nova-icon-select
您需要自己将图标集的样式包含到nova中。一种常见的方法是将它添加到您的resources/views/vendor/nova/partials/meta.blade.php
中。
对于FontAwesome
,您可以这样做
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous" />
当然,您也可以在您的服务器上托管图标集,甚至使用完全不同的图标。
用法
像其他字段一样,您可以在您的Nova资源中使用该字段。您需要提供一个IconProvider
。您可以使用内置的FontAwesomeIconProvider
,或者使用IconProvider
的实例,或者创建自己的。
use Bernhardh\NovaIconSelect\NovaIconSelect; NovaIconSelect::make("Icon", "icon") ->setIconProvider(/* Instance or classname of an IconProvider */);
与FontAwesome 5 Free一起使用
对于FontAwesome 5 Free
,已经内置了Provider。这样使用它
use Bernhardh\NovaIconSelect\NovaIconSelect; use Bernhardh\NovaIconSelect\IconProviders\FontAwesomeIconProvider; NovaIconSelect::make("Icon") ->setIconProvider(FontAwesomeIconProvider::class);
如果您想更改标签、删除图标或添加搜索标签,您可以发布配置
php artisan vendor:publish --provider="Bernhardh\NovaIconSelect\FieldServiceProvider"
现在您可以像您喜欢的那样修改config/nova-icon-select/fontawesome.php
文件。
与您自己的图标集一起使用
要使用您自己的图标集,您可以选择创建自己的IconProvider
类并从Bernhardh\NovaIconSelect\IconProvider
扩展它,或者您可以使用Bernhardh\NovaIconSelect\IconProvider
作为一个实例并直接添加选项。
使用实例和setOptions
use Bernhardh\NovaIconSelect\NovaIconSelect; use Bernhardh\NovaIconSelect\IconProvider; NovaIconSelect::make("Icon") ->setIconProvider(IconProvider::make()->setOptions([ [ 'label' => 'Custom icon 1', 'value' => 'my-icons-1', 'search' => ['foo'] ], [ 'label' => 'Custom icon 2', 'value' => 'my-icons-2', ], [ 'label' => 'Custom icon 2', 'value' => 'my-icons-3', 'search' => ['foo', 'bar'] ], ]));
或者,您当然也可以将选项移动到配置文件中,并通过config()
获取它
use Bernhardh\NovaIconSelect\NovaIconSelect; use Bernhardh\NovaIconSelect\IconProvider; NovaIconSelect::make("Icon", "icon") ->setIconProvider( IconProvider::make()->setOptions(config("iconset")) );
使用自己的类
use Bernhardh\NovaIconSelect\IconProvider; class MyCustomIconProvider extends IconProvider { public function __construct() { $this->setOptions([ [ 'label' => 'Custom icon 1', 'value' => 'my-icons-1', 'search' => ['foo'] ], [ 'label' => 'Custom icon 2', 'value' => 'my-icons-2', ], [ 'label' => 'Custom icon 2', 'value' => 'my-icons-3', 'search' => ['foo', 'bar'] ], ]); } }
现在您可以使用了
use Bernhardh\NovaIconSelect\NovaIconSelect; NovaIconSelect::make("Icon") ->setIconProvider(MyCustomIconProvider::class);
选项
示例
[ 'label' => 'Custom icon 1', 'value' => 'my-icons-1', 'search' => ['foo', 'bar'] ]
每个选项由这些字段组成
label
: 必需的字符串。这是在nova中显示的值,此值用于搜索(检查标签是否包含搜索字符串)value
: 必需的字符串。这是实际图标类或标识符,将存储到数据库中。对于FontAwesome
,这将是类似fas fa-edit
的东西search:
可选的字符串数组。此数组用于搜索(检查字符串是否以搜索字符串开头)unicode
:可选的字符串。目前未使用
当然,你可以像我对 FontAwesomeIconProvider
所做的那样,将选项移动到配置文件中
变更日志
请参阅 CHANGELOG 以获取更多关于最近更改的信息。