kamelher/laravel-settings

laravel应用程序的简单设置包

1.1.1 2021-08-29 11:41 UTC

This package is auto-updated.

Last update: 2024-09-29 05:43:16 UTC


README

一个为laravel应用程序提供必需设置的laravel包。

支持laravel >= 5.2

安装

  1. composer

将以下内容添加到您的composer文件中。

"kamelher/laravel-settings": "dev-master"

或运行以下命令

composer require kamelher/laravel-settings
  1. config/app.php [在laravel 5.5中不需要此步骤,因为包自动发现功能]

将您的提供者添加到providers数组中

'providers' => [
    // ...
   	\KAMEL\Settings\app\Providers\SettingServiceProvider::class
    // ...
  ],

并将Setting类添加到aliases数组中

'aliases' => [
	// ...
	'Settings' => \KAMEL\Settings\app\Facades\Setting::class
    // ...
],
  1. 发布

运行以下命令

php artisan vendor:publish

config/settings.phpresources/vendor/settings 将添加到您的laravel项目中。

  1. 迁移

您可以在 config/settings.php 中设置表名

return [
	// ...
	// settings package table name the default is `settings`
    'table' => 'settings'
    // ...
];

默认表名为 settings。然后运行迁移命令

php artisan migrate

settings表将迁移到您的数据库中。

包选项

发布包后,会添加新的配置文件 config/settings.php,根据您的业务需求更新值

return [
    //settings route
    'route' => 'settings',

    'middleware' => ['web', 'auth'],

    // hidden records not editable from interface when set to false
    'show_hidden_records' => false,

    //javascript format
    'date_format' => 'mm/dd/yyyy',
    // number of digits after the decimal point
    'number_step' => 0.001,

    // upload path for settings of type file
    'upload_path' => 'uploads/settings',

    // valid mime types for settings of type file
    'mimes' => 'jpg,jpeg,png,txt,csv,pdf',

    'per_page' => 10,

    // settings package table name the default is `settings`
    'table' => 'settings'
];

如何使用

设置的默认路由为

your-domain/settings

它将显示您拥有的所有设置的列表,您可以从那里管理您的设置。

在代码中获取设置值时,可以使用门面像这样

验证键是否存在

\Settings::has('SETTING_KEY');
\Settings::get('SETTING_KEY');
\Settings::get('SETTING_KEY', 'Default value if not exist');

例如

\Settings::get('SITE_TITLE', 'Laravel Settings');

您还可以使用星号来获取一组设置。例如

\Settings::get('MAIL_*');

将返回所有以MAIL开头的设置的数组

[
'MAIL_DRIVER' => 'smtp',
'MAIL_HOST'   => 'mailtrap.io',
'MAIL_PORT'   => '2525',
]

如果是文件类型,将返回完整路径

config('settings.upload_path') . '/' . $value;

例如

uploads/settings/site_logo.png

===================================