deeplookcode/nova-settings

一个用于使用原生 Nova 字段编辑自定义设置的 Laravel Nova 工具。

1.1.2 2019-12-19 12:13 UTC

This package is auto-updated.

Last update: 2024-09-19 22:40:27 UTC


README

Laravel Nova 包允许您在代码中创建自定义设置(使用 Nova 的原生字段),并为用户创建一个可以编辑设置的 UI。

要求

  • Laravel Nova >= 2.0

功能

  • 代码中的设置字段管理
  • 编辑设置的 UI
  • 访问设置的辅助函数

屏幕截图

Settings View

安装

使用 Composer 在 Laravel Nova 项目中安装此包

composer require optimistdigital/nova-settings

发布数据库迁移并运行迁移

php artisan vendor:publish --provider="OptimistDigital\NovaSettings\ToolServiceProvider" --tag="migrations"
php artisan migrate

NovaServiceProvidertools() 方法中注册此工具

// in app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        new \OptimistDigital\NovaSettings\NovaSettings
    ];
}

使用方法

注册字段

通过调用 NovaSettings::setSettingsFields()NovaServiceProviderboot() 函数中定义字段。

\OptimistDigital\NovaSettings\NovaSettings::setSettingsFields([
    Text::make('Some setting', 'some_setting'),
    Number::make('A number', 'a_number'),
]);

自定义格式化

如果想在返回设置值之前对其进行格式化,将 Closure 作为 setSettingsFields 函数的第二个参数传递。该函数接收两个参数:keyvalue

\OptimistDigital\NovaSettings\NovaSettings::setSettingsFields([
    // ... fields
], function ($key, $value) {
    if ($key === 'some_boolean_value') return boolval($value);
    return $value;
});

辅助函数

nova_get_settings()

调用 nova_get_settings() 以获取所有格式化为常规数组的设置。

nova_get_setting_value($key)

要获取单个设置的值,调用 nova_get_setting_value('some_setting_key')。如果键不存在,它将返回值或 null。