hacoidev/settings

使用 Backpack CRUD 的 Laravel 5 应用设置界面。

1.0.0 2022-10-10 08:28 UTC

This package is auto-updated.

Last update: 2024-09-10 12:24:39 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Style CI Total Downloads

管理员易于更改应用设置的界面。使用 Laravel Backpack。适用于 Laravel 5.2 到 Laravel 8。

安全更新和重大变更

订阅 BackpackNewsletter 以获取有关任何安全更新、重大变更或新功能的信息。我们每1-2个月发送一次电子邮件。

安装

注意: 默认表名为 settings,如果您需要更改,请仔细阅读以下说明中的注释。

在您的终端中

# install the package
composer require backpack/settings

# [optional] if you need to change table name or migration name, please do it now before proceding
php artisan vendor:publish --provider="Backpack\Settings\SettingsServiceProvider" --tag="config"
# then change the values you need in in `config/backpack/settings.php`

# publish & run the migration
php artisan vendor:publish --provider="Backpack\Settings\SettingsServiceProvider"
php artisan migrate

# [optional] add a menu item for it to the sidebar_content file
php artisan backpack:add-sidebar-content "<li class='nav-item'><a class='nav-link' href='{{ backpack_url('setting') }}'><i class='nav-icon la la-cog'></i> <span>Settings</span></a></li>"

# [optional] insert some example dummy data to the database
php artisan db:seed --class="Backpack\Settings\database\seeds\SettingsTableSeeder"

用法

最终用户

将其添加到菜单或通过其路由访问:application/admin/setting

程序员

就像使用虚拟 settings.php 文件中的任何配置值一样使用它。除了值存储在数据库中并在启动时检索,而不是存储在文件中。

Setting::get('contact_email')
// or 
Config::get('settings.contact_email')

添加新设置

设置存储在数据库中的 "settings" 表中。其列包括

没有可用的界面来添加新设置。它们由开发人员直接在数据库中添加,因为 Backpack CRUD 字段配置有点复杂。请参阅 https://backpackforlaravel.com/docs 上的字段类型及其配置代码。

覆盖现有配置

您可以使用此插件通过设置 GUI 调整各种 Laravel 配置,包括 Backpack 设置本身。例如,您可以通过 /config/Backpack/base.php 中的 show_powered_byskin 设置覆盖 Backpack。

  1. 在您的设置数据库中创建设置条目。您可以手动添加设置,或通过 Laravel 种子文件。插入到数据库中的值应类似于以下内容

    对于 Backpack show_powered_by 设置

    对于 Backpack Skin 设置

  2. 打开 app/Providers/AppServiceProvider 文件,并添加以下行

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\ServiceProvider;
    
    class AppServiceProvider extends ServiceProvider
    {
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
    +       $this->overrideConfigValues();
        }
    
        /**
         * Register any application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    
    +   protected function overrideConfigValues()
    +   {
    +       $config = [];
    +       if (config('settings.skin'))
    +           $config['backpack.base.skin'] = config('settings.skin');
    +       if (config('settings.show_powered_by'))
    +           $config['backpack.base.show_powered_by'] = config('settings.show_powered_by') == '1';
    +       config($config);
    +   }
    }

屏幕截图

请参阅 backpackforlaravel.com

  • 列表视图: List / table view in Backpack/Settings
  • 使用电子邮件字段类型编辑设置

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

测试

$ composer test

贡献

请参阅 CONTRIBUTING 了解详细信息。

覆盖功能

如果您需要修改项目中的此功能

  • 创建一个 routes/backpack/settings.php 文件;包会识别到这个文件,并加载您的路由文件,而不是包内的路由文件;
  • 创建扩展包中类的控制器和模型,并在您的新的路由文件中使用它们;
  • 修改您在新的控制器和模型中需要修改的任何内容;

安全

如果您发现任何与安全相关的问题,请发送电子邮件至 tabacitu@backpackforlaravel.com,而不是使用问题跟踪器。

订阅 BackpackNewsletter 以获取有关任何安全更新、重大变更或新功能的信息。我们每1-2个月发送一次电子邮件。

致谢

许可证

Backpack 免费用于非商业用途,商业用途为 69 EUR/项目。请参阅 许可证文件backpackforlaravel.com 获取更多信息。

雇佣我们

我们已经在 Laravel 上花费了超过 50,000 个小时来创建、打磨和维护管理面板。我们开发了电子商务、在线学习、ERP、社交网络、支付网关等等。我们对管理面板做了如此多的工作,以至于我们创造了其领域中最受欢迎的软件之一——仅仅是因为我们公开了项目中的重复性内容。

如果您正在寻找一个开发人员/团队来帮助您在 Laravel 上构建管理面板,那么您无需再寻找。您将很难找到比我们有更多经验和对这项工作有更大热情的人。这就是我们 所做的工作联系我们。让我们看看是否可以一起工作。