qmas/laravel-metadata-trait

为Laravel模型添加设置功能。

1.0.1 2021-07-26 05:58 UTC

This package is auto-updated.

Last update: 2024-09-26 13:39:10 UTC


README

Latest Version on Packagist

为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)。有关更多信息,请参阅许可证文件