cloudcake / laravel-settings
将通用数据关联到任何其他模型,而不污染您的应用程序模型逻辑。
v1.2
2020-01-12 22:32 UTC
Requires (Dev)
- laravel/framework: ~5.5.0|~5.6.0|~5.7.0
- orchestra/testbench: ~3.4.0|~3.5.0|~3.6.0
- phpunit/phpunit: ~7.0
This package is auto-updated.
Last update: 2024-09-13 08:38:52 UTC
README
设置 是一个包,用于使用多态关系将设置或 JSON 形式的属性关联到您的任何模型。
用法
发布迁移
php artisan vendor:publish --provider="Settings\Providers\SettingsServiceProvider" \ --tag="migrations"
设置模型
将 \Settings\Traits\HasSettings
特性添加到任何应具有设置的模型。
use Settings\Traits\HasSettings; class User extends Model { use HasSettings; }
创建设置
全局设置
use Settings\Models\Setting; Setting::make('config', [ 'rateLimit' => true, 'ipLocks' => [ '127.0.0.1', '10.0.0.1' ] ]);
模型特定设置
use Settings\Models\Setting; Setting::make('preferences', [ 'notifications' => true, 'backgroundColour' => '#ffffff' ], \App\User::class);
附加设置
在附加设置时,未提供的任何字段将接收默认值。
\App\User::find(1)->attachSetting('preferences', [ 'notifications' => false, ]);
上述设置将 notifications
设置为 true
,而 backgroundColour
将从原始设置中继承。如果全局设置更改,用户的设置将返回更改后的设置。
获取设置
获取所有字段
\App\User::first()->setting('preferences');
获取特定字段
\App\User::first()->setting('preferences')->get('notifications');
修改设置
\App\User::first()->setting('preferences')->set('notifications', true);