romarkcode / settings
Nova 设置
V1.51
2022-02-25 14:02 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-27 10:11:20 UTC
README
Laravel Nova 设置工具
关于
使用此工具,您可以轻松创建不同类型的自定义字段。此外,您还可以轻松安装多语言支持。对于即时数据库查询,所有信息都存储在以组为单位的 JSON 格式中。
先决条件
此工具需要
"laravel/nova": ">=2.8"
安装
通过 composer 下载
composer require romarkcode/settings
运行迁移
php artisan migrate
发布供应商文件
php artisan vendor:publish --provider="Finoghentov\NovaSettings\ToolServiceProvider"
将工具添加到 NovaServiceProvider
//NovaServiceProvider.php
public function tools()
{
return [
new NovaSettings
];
}
Nova 设置构造函数期望两个可选参数。
- 第一个是一个
string
标题,在 Nova 侧边栏中。 - 第二个是一个
boolean
值,可以隐藏配置页面
//NovaServiceProvider.php
public function tools()
{
return [
new NovaSettings('Custom title', false)
];
}
如果您想启用多语言,您应该将以下代码添加到您的 config/app.php 配置文件中
//config/app.php
'settings_languages' => [
'en', ...
],
要使用您的设置,您可以使用 'setting' 辅助方法
<div>
{{setting('group_key.setting_key', 'locale')}}
</div>
如果您想获取组数据的数组,您可以使用 'settings_group' 辅助方法
foreach(settings_group('group_key') as $item){
...
}
要在 blade 中创建和显示新/现有设置
<div>
{{setting_helper('group name', 'setting key', 'setting type', 'locale')}}
</div>
'设置类型' 是一个枚举字段
default $type = 'text_box'
$type = [
'text_box',
'textarea',
'rich_text_box',
'checkbox',
'image'
]
'地区' 默认为 NULL。如果地区 = NULL,则将使用 app()->getLocale()。如果设置没有地区值,则返回 app()->fallback_locale 值。
缓存设置
注意我们正在使用缓存标签。当使用文件、dynamodb 或数据库缓存驱动程序时,不支持缓存标签!
您可以将查询缓存到数据库中。您需要更新配置文件 romarkcode-settings.php
'cache_able'=true
如果您需要更改缓存时间,默认为 1 分钟。如果您需要,可以设置为永远。
'cache_time' => 'forever'
如果您需要清除缓存,可以通过 settings_group_key 来清除
cache()->tags($setting_group_key)->flush