marshmallow / nova-tool-settings
一个 Laravel Nova 工具,允许用户管理从代码中创建的全局设置。
Requires
- php: ^7.1|^8.0
This package is auto-updated.
Last update: 2024-08-30 01:11:54 UTC
README
一个 Laravel Nova 工具,允许用户管理从代码中创建的全局设置。此包仅在 Laravel Nova 中工作。
目录
安装
按照以下步骤安装 NovaSettingsTool。
安装包
使用以下命令通过 composer 安装此包
composer require marshmallow/nova-tool-settings
运行迁移
此包使用数据库表来存储设置值。运行迁移命令以在数据库中创建表,使用以下命令
php artisan migrate
发布配置和翻译
此包附带一个配置文件和选项以及翻译。要更改它们,请使用以下命令发布这些配置和翻译文件
php artisan vendor:publish --tag="settings"
使用
注册工具
使用 Nova 注册工具。将工具添加到 App\NovaServiceProvider 的 tools() 方法中,如下所示
use Marshmallow\NovaSettingsTool\NovaSettingsTool; // ... public function tools() { return [ // ... new NovaSettingsTool(), // ... ]; }
创建监听器
创建一个监听器类,其中设置工具将请求组和项目。监听器类可以放在例如 App/Handlers 中,例如命名为 SettingsRegisteringListener.php。使用 handle() 方法定义设置组和设置项,如下所示
use Marshmallow\NovaSettingsTool\Enums\SettingType; use Marshmallow\NovaSettingsTool\Events\SettingsRegistering; use Marshmallow\NovaSettingsTool\ValueObjects\SettingGroup; use Marshmallow\NovaSettingsTool\ValueObjects\SettingItem; // ... class SettingsRegisteringListener { // ... public function handle(SettingsRegistering $event) { // ... } // ... }
注册监听器
使用 Nova 注册监听器。将包含监听器类的 SettingsRegistering 事件添加到 App\EventServiceProvider 的 $listen 数组中,如下所示
use Marshmallow\NovaSettingsTool\Events\SettingsRegistering; use App\Handlers\SettingsRegisteringListener; // ... protected $listen = [ // ... SettingsRegistering::class => [ SettingsRegisteringListener::class ] // ... ];
定义设置
在监听器的 handle() 方法中或在该事件监听器的 handle() 方法中定义设置。以下是如何定义设置的示例
public function handle(SettingsRegistering $event) { $event->settingRegister ->group('general', function(SettingGroup $group) { $group->name('General') ->icon('fa fa-cog') ->item('title', function (SettingItem $item) { $item->name('Website Title'); }) ->item('description', function (SettingItem $item) { $item->type(SettingType::TEXTAREA); }); }) ->group('privacy', function(SettingGroup $group) { $group ->name('Privacy') ->icon('fa fa-user-secret') ->item('log', function (SettingItem $item) { $item->name('Log User Activity') ->field(Boolean::make('log')->help( 'When enabled, user activity will be logged.' )); }); }); }
对象方法
SettingRegister
group(string $key, Closure $callback = null)
创建一个新的 SettingGroup 或调用具有相同键的现有 SettingGroup 并将其添加到 SettingRegister 中。
参数 string $key
SettingGroup 的自定义(或现有)键(通常为蛇形命名)。
参数 Closure $callback
配置 SettingGroup 和定义项的方法。创建的 SettingGroup 将作为参数传递。默认值为 null。
返回 SettingRegister
当前 SettingRegister 对象($this)。
getGroups()
从 SettingRegister 对象获取所有已注册的 SettingGroup 对象的 Collection。
返回 \Illuminate\Support\Collection
已注册到 SettingRegister 的 SettingGroup 对象集合。
getGroup(string $key)
通过键从 SettingRegister 获取 SettingGroup。如果找不到 SettingGroup,则会自动创建。
参数 string $key
SettingGroup 的键。
返回 SettingGroup
请求或新创建的 SettingGroup。
SettingGroup
key(string $key)
设置SettingGroup的键。这是可选的,因为组从SettingRegister类的group()方法中获取其键。
参数 string $key
SettingGroup的自定义键(通常为蛇形命名)。
返回 SettingGroup
当前的SettingGroup对象($this)。
name(string $name)
设置SettingGroup的名称。
参数 string $name
SettingGroup显示的选项卡标题。
返回 SettingGroup
当前的SettingGroup对象($this)。
icon(string $icon)
设置SettingGroup的图标。当配置文件中将show_icons设置为true时,将显示图标。
参数 string $icon
需要显示在SettingGroup选项卡标题中的FontAwesome 5图标类(例如:fa fa-cog)。
返回 SettingGroup
当前的SettingGroup对象($this)。
priority(int $priority)
设置SettingGroup的优先级。当未设置时,SettingGroup选项卡将根据创建顺序排序。
参数 int $priority
SettingGroup的优先级。
返回 SettingGroup
当前的SettingGroup对象($this)。
item(string $key, Closure $callback = null)
创建一个新的SettingItem并将其添加到SettingGroup中。
参数 string $key
SettingItem的自定义键(通常为蛇形命名)。
参数 Closure $callback
SettingItem可以配置的方法。创建的SettingItem将作为参数传递。默认值为null。
getItems()
从SettingGroup对象中获取所有注册的SettingItem对象的Collection。
返回 \Illuminate\Support\Collection
与SettingGroup注册的SettingItem对象集合。
getItem(string $key)
通过其键从SettingGroup中获取SettingItem。当找不到SettingItem时,将自动创建。
参数 string $key
SettingItem的键。
返回 SettingGroup
请求或新创建的SettingItem。
getKey()
从SettingGroup获取键。
返回 string
SettingGroup 的键。
getName()
从SettingGroup获取名称。
返回 string
SettingGroup 的键。
getIcon()
从SettingGroup获取图标。
返回 string
SettingGroup 的键。
getPriority()
从SettingGroup获取优先级。
返回 int
SettingGroup 的键。
hasItems()
检查SettingGroup是否包含一个或多个SettingItem对象。
返回 bool
表示SettingGroup是否有任何SettingItem对象。
SettingItem
key(string $key)
设置SettingItem的键。这是可选的,因为项目从SettingGroup类的item()方法中获取其键。
参数 string $key
SettingItem的自定义键(通常为蛇形命名)。
返回 SettingItem
当前的SettingItem对象($this)。
name(string $name)
设置SettingItem的名称。
参数 string $name
SettingItem显示的标题。
返回 SettingItem
当前的SettingItem对象($this)。
priority(int $priority)
设置SettingItem的优先级。当未设置时,SettingItem行将根据创建顺序排序。
参数 int $priority
SettingItem的优先级。
返回 SettingItem
当前的SettingItem对象($this)。
options(array $options)
向SettingItem设置附加选项。选项数组必须是Key => Value数组。有关支持的选项,请参阅SettingItem 选项。
参数 string $options
包含首选选项的Key => Value数组。
返回 SettingItem
当前的SettingItem对象($this)。
type(string $type)
设置SettingItem的SettingType。仅支持来自SettingType枚举的值。当使用field()方法设置Field时,这是可选的。
参数 string $type
SettingType常量的值。
返回 SettingItem
当前的SettingItem对象($this)。
field(\Laravel\Nova\Fields\Field $field)
创建一个新的 Field 实例并将其添加到 SettingItem 中。检查在 已测试字段 部分中哪些 Field 类被证明可以正常工作。
参数 \Laravel\Nova\Fields\Field $field
当前 SettingItem 的 Field。
value($value)
以编程方式设置值。通常,这应该由工具根据用户输入来处理。
参数 $value
SettingItem 的值。
返回 SettingItem
当前的SettingItem对象($this)。
getKey()
从 SettingItem 获取键。
返回 string
SettingItem的键。
getName()
从 SettingItem 获取名称。
返回 string
SettingItem的键。
getPriority()
从 SettingItem 获取优先级。
返回 int
SettingItem的键。
getOptions()
从 SettingItem 获取选项。
返回 array
SettingItem 的选项。
getType()
从 SettingItem 获取类型。
返回 string
SettingItem 的类型。
getField()
从 SettingItem 获取 Field。
返回 \Laravel\Nova\Fields\Field
SettingItem 的 Field。
getValue()
从 SettingItem 获取值。它检查值是否已从数据库中获取,如果没有值,它将返回默认值(通过 options 方法设置)。如果仍然没有值,它将返回 null。
返回 mixed
SettingItem 的值。
辅助方法
settings()
从 App 容器获取 SettingRegister 实例。如果ServiceProvider未初始化 SettingRegister,则此方法返回null。
返回 SettingRegister|null
从 App 容器获取的 SettingRegister 实例或在未初始化时为null。
setting(string $key)
使用 SettingItem 的键从 App 容器中的 SettingRegister 获取 SettingItem 实例。如果ServiceProvider未初始化 SettingRegister 或 SettingItem 不存在,则此方法返回null。
参数 string $key
SettingItem的键。
返回 mixed
请求的 SettingItem 实例或找不到时为null。
settingValue(string $key)
使用 SettingItem 的键从 App 容器中的 SettingRegister 获取 SettingItem 实例的值。如果 SettingRegister 未初始化,SettingItem 不存在或未设置值,则此方法返回null。
参数 string $key
SettingItem的键。
返回 mixed
请求的 SettingItem 实例的值或找不到时为null。
SettingType 表示
配置选项
翻译选项
SettingItem 选项
测试字段
截图
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。


