pxpm/backpack-crud-settings

允许开发者向CRUD中添加设置

1.2.3 2020-08-06 16:37 UTC

This package is auto-updated.

Last update: 2024-09-25 00:27:55 UTC


README

为Backpack应用程序创建设置仪表板。

bp_settings_main

安装

composer require pxpm/backpack-crud-settings

  • 迁移设置表:php artisan db:migrate

发布配置文件:php artisan vendor:publish --provider="Pxpm\BpSettings\BpSettingsServiceProvider" --tag=config

创建一个将设置种子到数据库的种子器

php artisan make:seeder SettingsSeeder

重要提示

这个种子器将是您设置的唯一真相来源。这是您从数据库中添加/删除/更新设置的方法。

上述命令将在默认情况下在Laravel应用程序的Database\Seeds\文件夹中生成类似的内容。

<?php

use Illuminate\Database\Seeder;

class SettingsSeeder extends Seeder
{
    public function run()
    {
        //create your array of settings like defining Backpack fields.
        $settings = [
             [
                'name' => 'company_name',
                'type' => 'text',
                'label' => 'Company Name',
                'tab' => 'Main',
                'wrapperAttributes' => ['class' => 'col-md-6 form-group']
            ]
        ];
        
        //call the setting manager to manage those settings. It will take care of create/update/delete settings.
        app('settingsmanager')->create($settings);
    }
注意
  • 创建您的种子器后,您应该运行composer dump-autoload

  • 使用以下命令种子设置:php artisan db:seed --class=SettingsSeeder

配置

如果您遵循了所有安装步骤,您现在应该能在config/目录中找到bpsettings.php文件。默认配置已准备好直接使用,但您可以根据需要自定义它。

创建设置

您现在可以访问您的设置面板:your_url.com/backpack_admin_prefix/bp-settings

要添加设置到您的面板中,如上所述,您应该创建一个Backpack字段数组并将其传递给Settings Manager。在设置定义中,您可以使用一些关键点来更好地组织您的设置面板。

命名空间

默认情况下,设置命名空间是null,这意味着它是一个通用设置,将出现在主设置面板中。通过定义设置命名空间,您可以创建额外的设置面板。

如果您使用namespace => 'users'设置了一些设置,那么这些设置将可以在:your_url.com/backpack_admin_prefix/bp-settings/users中单独访问

分组

允许您在面板内部进一步分组设置。您可以使用Backpack中提供的tab与分组结合使用。

验证

您可以使用Laravel的常规验证来验证设置输入。

定义键validation => 'required|min:5',然后我们将对您的设置输入运行Laravel验证器,并返回任何发现的错误。

使用设置

  • 所有设置在运行时都推入配置数组。我们使用缓存机制来确保如果没有更改设置,我们不会查询数据库,而是获取缓存的版本。

您可以使用:config('bpsettings.setting_name')app('settingsmanager')->get('setting_name')获取非命名空间设置的值。要获取命名空间设置的值,您可以使用:config('bpsettings.namespace.setting_name')app('settingsmanager')->get('namespace.setting_name')

重要提示

这仍是一个正在进行中的项目,我无法保证100%无缺陷的工作。