rennokki / eloquent-settings
Eloquent Settings 允许您将键值对绑定到任何 Laravel Eloquent 模型。它支持布尔型、浮点型或整型的类型转换。
Requires
- illuminate/database: ^8.83|^9.0.1
- illuminate/support: ^8.83|^9.0.1
Requires (Dev)
- doctrine/dbal: ^2.8|^3.0
- laravel/legacy-factories: ^1.3
- mockery/mockery: ^1.5
- orchestra/database: ^6.28|^7.0
- orchestra/testbench: ^6.28|^7.0
- orchestra/testbench-core: ^6.28|^7.0
- phpunit/phpunit: ^9.5.13
- dev-master
- 5.1.0
- 5.0.0
- 4.7.0
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.1
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.1
- 4.0.0
- 3.0.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.3.0
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.0
- dev-dependabot/github_actions/codecov/codecov-action-4.2.0
- dev-dependabot/github_actions/actions/cache-4.0.2
- dev-dependabot/composer/laravel/legacy-factories-tw-1.4
This package is auto-updated.
Last update: 2024-09-09 00:16:17 UTC
README
Eloquent Settings 允许您将键值对绑定到任何 Laravel Eloquent 模型。
🤝 支持
如果您在生产应用、演示演示、个人项目、学校项目等中使用 Renoki Co. 的一个或多个开源包,请通过 Github Sponsors 支持我们的工作。 📦
🚀 安装
安装包
$ composer require rennokki/eloquent-settings
发布配置
$ php artisan vendor:publish --provider="Rennokki\Settings\SettingsServiceProvider" --tag="config"
发布迁移
$ php artisan vendor:publish --provider="Rennokki\Settings\SettingsServiceProvider" --tag="migrations"
🙌 使用方法
您可以将 HasSettings
特性添加到任何 Eloquent 模型
use Rennokki\Settings\Traits\HasSettings; class User extends Model { use HasSettings; ... }
添加设置
$user->newSetting('subscribed.to.newsletter', 1); $user->newSetting('subscribed.to.newsletter', true);
默认情况下,设置值以 string
存储为字符串。以后,如果您尝试以类型转换获取它们,它们将返回您最初存储的值。如果您将 'true' 存储为字符串,如果您将其转换为布尔型,您将得到 true
。
如果您计划以除 string
之外的类型转换存储,您可以传递一个额外的第三个参数,该参数可以是 string
、boolean
、bool
、int
、integer
、float
或 double
。
$user->newSetting('subscribed.to.newsletter', true, 'bool');
更新设置
更新设置可以是值、类型转换或两者兼有,具体取决于发生了什么变化。
$user->updateSetting('subscribed.to.newsletter', false, 'bool');
如果您未指定类型转换参数,则不会更改,只有值会更改,反之亦然。
获取设置与值
您可以使用 getSetting()
获取设置实例,而不是值
$user->getSetting('subscribed.to.newsletter'); // does not accept a cast
如果您计划获取值,您可以使用 getSettingValue()
$user->getSettingValue('subscribed.to.newsletter'); // true, as boolean $user->getSettingValue('subscribed.to.newsletter', 'int'); // 1, as integer
请记住,当您更新或创建新的设置时,类型转换会存储。默认情况下,下次您不必再次调用类型转换参数,因为它将以存储时指定的方式转换。
$user->newSetting('is.cool', true, 'bool'); $user->getSettingValue('is.cool'); // it returns true as boolean
获取未知设置键的值将返回 null
。
$user->getSettingValue('subscribed.to.weekly.newsletter'); // null
删除设置
您可以使用 deleteSetting()
从数据库中删除设置。
$user->deleteSetting('subscribed.to.newsletter');
要删除所有设置,请调用 deleteSettings()
。
$user->deleteSettings();
🐛 测试
vendor/bin/phpunit
🤝 贡献
有关详细信息,请参阅 CONTRIBUTING
🔒 安全性
如果您发现任何安全相关的问题,请通过电子邮件 alex@renoki.org 而不是使用问题跟踪器。