後臺配置元件——使用最簡單的方式管理你的專案配置

熊能發表於2019-03-20

基於laravel-admin的資料庫配置管理工具,僅通過配置檔案就可生成整個表單,支援使用tab頁對配置項進行分組。

Untitled

安裝:

步驟一:使用composer:

composer require fourn/admin-config

如果你已經依賴並配置好了官方提供的 config 可以跳過下面的步驟

步驟二:全域性引入後臺配置項:

use Encore\Admin\Config\Config;
class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if (\Schema::hasTable('admin_config') && class_exists(Config::class)) {
            Config::load();
        }
    }
}

步驟三:執行資料庫遷移:

php artisan migrate

使用方法:

第一步:釋出配置檔案:

artisan vendor:publish --tag=admin-config

第二步:在配置檔案中加入配置組及配置項,詳細參考下面的"配置檔案語法"

第三步:使用laravel中的config函式

// 獲取一組
config('sample')
// 獲取一項
config('sample.value')

其他:

你可以生成後臺選單:

php artisan admin:import admin-config

或者直接訪問:

http://your-host/admin/admin-config

擴充套件配置:

'extensions' => [
    'admin-config' => [
        'title'=>'AdminConfig',
        'description'=>'Manage your profiles as profiles',
        'action'=>' ',
    ],
],

配置檔案語法:

配置檔案釋出後路徑為:config/admin-config.php

定義配置組:

'admin_config_groups' => [

    // 配置組值 => tab選項卡顯示文字
    'sample' => 'sample-name',

    // 省略寫法,等同於 'sample2' => 'sample2'
    'sample2'

],

定義配置項:

// 配置組名作為鍵,可以使用config('sample')訪問一組值
'sample' => [

    // 預設情況寫法,以下等同於 'value' => ['label'=>'value', 'type'=>'test']
    // 可以使用config('sample.value')訪問其值
    'value',

    // 支援配置鏈式呼叫,以下將執行$form->text('value1')->help('help content')->default('default value')
    'value1'=>['help'=>'help content', 'default'=>'default value'],

    // 支援幾乎所有Encore\Admin\Form\Field物件的鏈式呼叫方法,非鏈式呼叫的值將在Field例項化時作為引數傳入
    // 以下將執行$form->test('value2', 'label text')->placeholder('typing...')->rules('required')
    'value2'=>['label text', 'placeholder'=>'typing...', 'rules'=>'required'],

    // 需要定義欄位型別,type鍵值不可省略
    'value3'=>['type'=>'select', 'select label text', 'options'=>['option1'=>'option1',             'option2'=>'option2']],
    'value5'=>['type'=>'checkbox', 'options'=>['foo'=>'foo', 'bar'=>'bar']],
    'value6'=>['type'=>'ip'],
    'value7'=>['type'=>'mobile'],
    'value8'=>['type'=>'color'],
    'value9'=>['type'=>'time', 'format'=>'HH:mm'],

    // 範圍型別的欄位會分別儲存為兩個配置項,'sample.value10.start' 及 'sample.value10.end'
    'value10'=>['type'=>'dateRange', 'dateRange label text'],
    'value11'=>['type'=>'number', 'min'=>100, 'default'=>100],
    'value12'=>['type'=>'rate'],

    // 支援沒有引數的鏈式呼叫,以下將執行$form->image('value13')->uniqueName()
    'value13'=>['type'=>'image', 'uniqueName'],
    'value14'=>['type'=>'file', 'uniqueName'],
    'value17'=>['type'=>'editor'],
    'value18'=>['type'=>'switch'],
    'value19'=>['type'=>'tags'],

    // 以下一對多關係將被自動轉化為逗號隔開的資料存入資料庫
    'value4'=>['type'=>'listbox', 'options'=>['foo'=>'foo', 'bar'=>'bar']],
    'value15'=>['type'=>'multipleImage', 'removable', 'uniqueName'],
    'value16'=>['type'=>'multipleFile', 'removable', 'uniqueName'],

],
// 對應配置組值
'sample2' => [
    'value'
]

效果示例:

配置檔案自動轉化為表單:

Snipaste_2019-03-18_16-14-05

資料庫:

Snipaste_2019-03-18_16-21-44

相關文章