surya / laravel-settings
用于管理应用程序设置的laravel包
Requires
- php: >=7.0
- illuminate/container: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0.0
- illuminate/database: ~5.5.0|~5.6.0|~5.7.0|~5.8.0|~6.0.0
Requires (Dev)
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-09-18 12:49:20 UTC
README
用于管理应用程序设置的laravel包
安装
composer require surya/laravel-settings
此包需要laravel 5.5或更高版本,如果您的laravel当前版本低于5.5,您可以安装此包,但它未经过任何测试。
在config/app.php
中注册ServiceProvider
'providers' => [ Surya\Setting\SettingServiceProvider::class, ]
同时注册Facade别名
'aliases' => [ 'Setting' => Surya\Setting\Facades\Setting::class, ]
发布迁移表
php artisan vendor:publish --provider="Surya\Setting\SettingServiceProvider" --tag="migrations"
迁移
php artisan migrate
用法
默认情况下,用于存储设置文件夹位于resources/settings
,因此您必须自行创建settings
文件夹。
创建设置文件
让我们创建名为general.php
的设置文件
return [ 'site_name' => [ 'type' => 'text', 'default' => 'Laravel', 'label' => 'Site Name' ], 'genre' => [ 'type' => 'radio', 'default' => 'male', 'label' => 'Genre', 'options' => [ 'male' => 'Male', 'female' => 'Female' ] ] ]
设置文件的名称也指代分组,用于获取设置值,设置文件仅包含设置属性的数组。
site_name
是设置的键。
可用的设置属性
- type => 设置的类型,基本上是输入标签,例如:文本、文本区域、选择、数字等。
- default => 设置的默认值。
- label => 设置标签。
- options => 仅针对类型选择和单选。
渲染设置文件
设置文件创建后,您可以使用blade指令来渲染设置文件
@rendersettings('general')
@rendersettings
指令不包括表单标签,因此您应该在表单标签之间渲染设置
<form method="POST" action="#yoursettingsaveroute"> {!! csrf_field() !!} @rendersettings('general') <input type="submit" value="Save"> </form>
所有设置类型都是Bootstrap友好的,因此它们将适应您的Bootstrap主题。
保存您的设置
您可以使用外观来简单地保存设置
use Setting; use Illuminate\Http\Request; class SettingController extends Controller { public function save(Request $request) { Setting::save($request->except('_token')); return redirect('your.view'); } }
与值互动
获取设置值
有三种不同的方式来获取设置值。使用指令
@settings('filename.key')
使用辅助函数
settings('group.key');
使用外观类
Setting::get('group.key');
获取设置属性
Setting::getSettingProp('group.key.default')
或者
setting('group.key.default')
检查设置是否存在
Setting::exists('group', 'key)
或者
settingExists('group', 'key')
修改设置类型
您仍然可以控制修改每个设置类型或添加新的设置类型。
发布设置类型视图
php artisan vendor:publish --provider="Surya\Setting\SettingServiceProvider" --tag="views"
如您所见,在resources/view/vendor/setting/settings
中,每个设置type
视图都有与type
属性完全相同的名称,因此如果您想要额外的设置类型,只需添加另一个视图文件。
例如,如果您想要创建接受电子邮件的设置
<div class="form-group"> <label for="email-{{ $i }}">{{ $label }}</label> <input type="email" id="email-{{ $i }}" class="form-control" value="{{ $value }}" name="value[]"> </div>
每个设置键的所有属性都自动传递。保存为
email.blade.php
,它将自动识别为电子邮件设置类型。
1.2.+ 新增功能
您现在可以为选择设置类型添加资源键
例如,如果您想要从数据库中选择主要用户
return [ 'primary_user' => [ 'type' => 'select', 'label' => 'Select a Primary User', 'source' => App\User::class, 'show_label' => 'email' ], ]
有3个新键,source
是模型源,show_label
是模型属性,key
如果您的模型主键是id
则保留为空。
当前source键仅适用于
select
设置类型
1.2.1 新增功能
新增switch
设置类型。
'example_switch' => [ 'type' => 'switch', 'default' => 0, 'label' => 'Switch Example', ]
为了使用开关,必须包含bootstrap,否则您将获得正常的复选框输入
现在设置类型check
可以使用options
键
'includes' => [ 'type' => 'check', 'default' => ['logo', 'profile'], 'label' => 'Your website include: ', 'options' => [ 'profile' => 'Your profile', 'logo' => 'Your logo', 'identity' => 'Your identity' ] ],