qmas / laravel-metadata-trait
为Laravel模型添加设置功能。
1.0.1
2021-07-26 05:58 UTC
Requires
- php: ^7.1|^8.0
- ext-json: *
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-26 13:39:10 UTC
README
为Laravel模型添加设置功能。
安装
您可以通过composer安装此包。
composer require r94ever/laravel-model-setting
发布配置和迁移
php artisan vendor:publish --provider="r94ever\LaravelModelSetting\ModelSettingServiceProvider"
打开config/model-setting.php文件,然后将存储设置数据的表的名称设置为您的需求。
运行迁移
php artisan migrate
用法
实现HasSettingsContract接口,然后为您的模型添加HasSettingData特性。
use Illuminate\Database\Eloquent\Model; use r94ever\LaravelModelSetting\Interfaces\HasSettingContract; use r94ever\LaravelModelSetting\Traits\HasSettingTrait; class Post extends Model implements HasSettingContract { use HasSettingTrait; ... }
保存设置
$model->saveSetting(array $settings);
检查模型是否具有设置
$model->hasSetting(string $key); // return true or false
检查模型是否具有多个给定设置
$model->hasSettings(array $keys, bool $any = false); // return true or false // When $any is FALSE, method will return TRUE only if model has all given setting keys // Otherwise, method will return TRUE if model has any of the given setting keys
获取给定设置键的值
$model->getSetting(string $key, $defaultValue);
或获取多个设置键的值
$model->getSettings(array $keys);
查询以找到具有给定元键和元值的模型
$post = Post::whereSetting('setting_key', $settingValue)->get();
对于嵌套键
$post = Post::whereSetting('key->sub_key->sub_sub_key', $settingValue)->get(); $post = Post::whereSetting('key.sub_key.sub_sub_key', $settingValue)->get();
如果使用MySQL或PostgreSQL,您可以使用数组作为$settingValue
$post = Post::whereSetting('key->sub_key->sub_sub_key', ['value_1', 'value_2'])->get(); $post = Post::whereSetting('key.sub_key.sub_sub_key', ['value_1', 'value_2'])->get();
变更日志
有关最近更改的更多信息,请参阅变更日志。
安全
如果您发现任何与安全相关的问题,请通过电子邮件vandt147@outlook.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。