spatie/laravel-settings是一个优秀的配置项持久化包,使用该包可以轻松将 Laravel 项目自定义配置项存储到数据库中。但是官方并没有给出完善的文档,只有 github 上的一点儿简单使用说明。下面分享一些获取不同需求配置项的方法。

获取一组配置中的指定配置项:

use AppSettingsGeneralSettings;

function getSiteName(){
    return app(GeneralSettings::class)->site_name;
}

获取一组配置中的全部配置项:

use AppSettingsLanguageSettings;

function getLanguageSettings(){
    return app(LanguageSettings::class)->toArray();
}

获取持久化的全部配置项:

function getAllSettings(){
    //从发布的 settings 配置文件从获取所有有效的 settings
    $availableSettings = config('settings.settings');

    foreach ($availableSettings as $settingClass) {
        $settings = app($settingClass);

        $result[$settings->group()] = $settings->toArray();
    }

    return $result;
}