romarkcode/settings

Nova 设置

V1.51 2022-02-25 14:02 UTC

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