ottosmops / settings
laravel 的简单设置包
v1.2.0
2024-03-26 16:10 UTC
Requires
- php: >=8.1
- laravel/framework: >=9
Requires (Dev)
- orchestra/testbench: >=7
README
安装
composer require ottosmops/settings
php artisan vendor:publish // --tag==migrations
如果您想重命名数据库表,您可以在 config/settings.php
中进行操作。
php artisan migrate
描述
该包安装了一个名为 settings
的表,并使用了一个普通的模型 setting
。因此,所有标准方法都可用。助手 setting('key')
和静态方法 Setting::getValue('key')
使用一个缓存的数组。如果创建、更新或删除设置,缓存将被忘记。
除了 key
和 value
之外,还有一些其他列
type
(不可为空!),scope
(字符串),editable
(转换为布尔值),rules
(字符串),description
(文本)。
如果您设置了一个新值,它会与类型和规则进行验证。因此,静态方法 Setting::setValue('key', 'value')
是设置值的首选方式。
用法
创建一个新的设置
$setting = Setting::create(['key' => 'myKey', 'type' => 'string', // integer, bool or array 'scope' => 'mysetting', 'rules' => 'nullable|string', 'description' => 'My description']); $setting = Setting::setValue('myKey', 'myValue'); echo $setting->value // myValue from the model // from Cache echo setting('key'); // myValue echo Setting::getValue('key'); // myValue
类型
值可以有不同的类型: string
、boolean
、integer
、array
。要创建一个新的设置,您必须指定至少一个类型
Setting::create(['key' => 'your_key', 'type' => 'integer']); Setting::setValue('your_key', 37);
因此,如果您现在获取一个值,它将被转换为这种类型。
助手
为了检索值,有一个助手 setting($key, $default= null)
,它使用设置缓存的数组。
配置
您可以在 setting.php
中设置另一个表名。
灵感来自
https://github.com/saqueib/db-settings/blob/master/app/Setting/Setting.php