supplycart / settings
Laravel 的模型设置
3.0.0
2024-06-18 07:41 UTC
Requires
- php: ^8.3
Requires (Dev)
- orchestra/canvas: ^9.0
- orchestra/testbench: ^9.0
This package is auto-updated.
Last update: 2024-09-18 08:13:55 UTC
README
允许Eloquent模型拥有自己的设置
安装
要安装,请在您的Laravel安装上运行以下命令
composer require supplycart/settings
然后发布迁移文件
php artisan vendor:publish --tag=migrations --provider=Supplycart\Settings\Providers\SettingsServiceProvider
使用方法
要使用,您只需实现 Supplycart\Settings\Contracts\HasSettings
接口并使用 Supplycart\Settings\Traits\HasSettings
特性
use Supplycart\Settings\Contracts\HasSettings as HasSettingsContract; use Supplycart\Settings\Traits\HasSettings; class User extends Model implements HasSettingsContract { use HasSettings; public function getDefaultSettings(): array { return []; } }
方法
getSetting($key, $default = null)
通过键检索模型设置。您可以使用点表示法获取嵌套设置,例如
$user->getSetting('timezone', 'Asia/Kuala_Lumpur'); $user->getSetting('lang', 'en_my'); $user->getSetting('subscription.newsletter', false);
setSetting($key, $value)
使用键设置模型设置。您可以使用与 getSetting
方法相同的点表示法
$user->setSetting('timezone', 'UTC'); $user->setSetting('lang', 'en_us'); $user->setSetting('subscription.newsletter', true);
getSettings()
获取所有设置。它将返回设置数组
$settings = $user->getSettings(); // ['timezone' => 'UTC', 'lang' => 'en_us', 'subscription' => ['newsletter' => true]];