rolfhaug / laravel-model-settings
一个可以让你向任何Eloquent模型添加键/值设置的流畅API的包
v0.0.2
2018-09-04 09:21 UTC
Requires (Dev)
- fzaninotto/faker: ^1.8@dev
- laravel/laravel: 5.*
- nunomaduro/collision: ^2.0
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-09-11 00:40:37 UTC
README
此包允许您通过设置模型轻松扩展任何Laravel模型。非常适合配置设置和个人偏好。
然后您可以通过优雅的API轻松设置和检索键/值对。如果设置不存在,将返回 NULL
。
$user = User::find(1);
$user->settings->set('my_setting', 'my_value');
echo $user->settings->my_setting; // my_value
安装
composer require rolfhaug/laravel-model-settings
如果您使用的是比 Laravel 5.6 更早的版本,请在 config/app.php
中添加以下内容到您的 providers 中。
RolfHaug\ModelSettings\ModelSettingsProvider::class,
创建一个新的设置模型
- 使用命令创建一个新的设置模型
art make:model-settings --model=user
- 将设置特性添加到您的模型中
use RolfHaug\ModelSettings\Settings;
提示:该命令创建了一个可回滚的迁移。
如何使用此包
$user = User:find(1);
设置设置
// Single setting
$user->settings->set('newsletter', true);
// Array of settings
$settings = [
['awesome_setting' => 'awesome_value'],
['another_setting' => 'another_value']
];
$user->settings->set($settings);
访问设置
如果设置不存在,将返回 NULL
。
$user->settings->newsletter;
// Array of all available settings
$user->settings->all();
销毁设置
$user->settings->delete('newsletter');
作用域
$users = User::whereSetting('newsletter', true)->get();
$users = User::whereHasSetting('newsletter')->get();
$users = User::whereDoesntHaveSetting('newsletter')->get();