rolfhaug/laravel-model-settings

一个可以让你向任何Eloquent模型添加键/值设置的流畅API的包

v0.0.2 2018-09-04 09:21 UTC

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,

创建一个新的设置模型

  1. 使用命令创建一个新的设置模型

art make:model-settings --model=user

  1. 将设置特性添加到您的模型中

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();