maab16/laravel-user-settings

为Laravel 6提供简单的用户设置门面。

v2.2 2020-01-09 22:11 UTC

This package is auto-updated.

Last update: 2024-09-13 08:00:17 UTC


README

为Laravel 6提供简单的用户设置门面。设置以JSON格式存储在单个数据库列中,因此您可以轻松将其添加到现有的表(例如users)。

还在使用Laravel 4?请确保使用版本1.xcomposer require grimthorr/laravel-user-settings ~1.0)。

还在使用Laravel 5?请确保使用版本2.1.xcomposer require grimthorr/laravel-user-settings ~2.1.2)。

安装

  1. 运行composer require maab16/laravel-user-settings以将此包包含到您的项目中。

  2. 仅适用于版本2.1.2或更低版本。将'Grimthorr\LaravelUserSettings\ServiceProvider'添加到config/app.php中的providers

'providers' => array(
  // ...
  'Grimthorr\LaravelUserSettings\ServiceProvider',
),
  1. 仅适用于版本2.1.2或更低版本。将'Setting' => 'Grimthorr\LaravelUserSettings\Facade'添加到config/app.php中的aliases
'aliases' => array(
  // ...
  'Setting' => 'Grimthorr\LaravelUserSettings\Facade',
),
  1. 运行php artisan vendor:publish --provider="Grimthorr\LaravelUserSettings\ServiceProvider" --tag="config"以发布配置文件。
  2. 修改位于config/laravel-user-settings.php的已发布配置文件,以满足您的需求。
  3. 在您的数据库表中创建一个varchar(字符串)列,以匹配步骤5中的配置文件。或者,使用此包中包含的Laravel迁移来自动在users表中创建settings列:php artisan vendor:publish --provider="Grimthorr\LaravelUserSettings\ServiceProvider" --tag="migrations" && php artisan migrate

配置

打开config/laravel-user-settings.php以调整包配置。如果此文件不存在,请运行php artisan vendor:publish --provider="Grimthorr\LaravelUserSettings\ServiceProvider" --tag="config"以创建默认配置文件。

return array(
  'table' => 'users',
  'column' => 'settings',
  'constraint_key' => 'id',
  'default_constraint_value' => null,
  'custom_constraint' => null,
);

指定您要使用的数据库中的表。

指定要存储设置JSON数据的上述表中的列。

约束键

指定用于约束的索引列 - 这用于区分不同的用户、对象或模型(通常是id)。

默认约束值

指定默认约束值 - 默认情况下,这将是当前用户的ID,并且可以由在函数调用中指定的任何$constraint_value所替代。

自定义约束

指定每个查询的WHERE子句 - 如果您想访问不同的行(例如,如果您的应用程序是单用户应用程序),请设置此值。

用法

使用设置门面(Setting::)或辅助函数(setting()->)来访问此包中的方法。所有函数的$constraint_value参数都是可选的;如果未传递,则使用配置文件中的default_constraint_value

设置

Setting::set('key', 'value', $constraint_value);
setting()->set('key', 'value', $constraint_value);

使用set来更改设置的值。如果设置不存在,则会自动创建。您可以通过将关联数组(key=>value)传递给第一个参数来一次性设置多个键值。

获取

Setting::get('key', 'default', $constraint_value);
setting()->get('key', 'default', $constraint_value);
setting('key', 'default', $constraint_value);

使用get来检索设置的值。第二个参数是可选的,可以用来指定设置不存在时使用的默认值(默认默认值是null)。

忘记

Setting::forget('key', $constraint_value);
setting()->forget('key', $constraint_value);

通过调用forget来取消设置或删除设置。

Setting::has('key', $constraint_value);
setting()->has('key', $constraint_value);

检查设置是否存在,返回一个布尔值。

全部

Setting::all($constraint_value);
setting()->all($constraint_value);

检索所有设置作为关联数组(key=>value)。

保存

Setting::save($constraint_value);
setting()->save($constraint_value);

将所有更改保存回数据库。在更改后需要调用此操作;这是非自动的。

加载

Setting::load($constraint_value);
setting()->load($constraint_value);

从数据库重新加载设置。如果设置之前未被加载或修改,则会自动调用。

示例

以下示例使用默认配置。

使用默认约束值

以下设置并返回当前登录用户的设置 "example"。

// Set 'example' setting to 'hello world'
Setting::set('example', 'hello world');

// Save to database
Setting::save();

// Get the same setting
return Setting::get('example');

指定约束值

以下设置并返回用户 ID 为 23 的 "example" 设置。

// Set 'example' setting to 'hello world'
Setting::set('example', 'hello world', 23);

// Save to database
Setting::save(23);

// Get the same setting
return Setting::get('example', null, 23);

最后

贡献

如果您想贡献,请随意创建一个分支并提交一个 pull request。

错误报告

如果您发现有问题,请在 GitHub 上提出一个问题。

致谢

基于 https://github.com/anlutro/laravel-settings 不太严格。