longestdrive/laravel-user-settings

Laravel 9 简单用户设置外观。从 Grimthorr/laravel-user-settings 分支而来。

11.0.1 2024-06-07 14:01 UTC

README

为 Laravel 9 提供简单用户设置外观。设置存储为 JSON 格式,在一个数据库列中,因此您可以轻松地将它添加到现有表(例如 users 表)中。

**这是从 ** Grimthorr/Laravel-user-settings 分支出来的。分支出来以支持 Laravel 9 兼容性

安装

  1. 运行 composer require longestdrive/laravel-user-settings 将其包含到您的项目中。
  2. 将 [可选 - 应该能够检测到包] 'longestdrive\LaravelUserSettings\ServiceProvider' 添加到 config/app.php 中的 providers
'providers' => array(
  // ...
  'Longestdrive\LaravelUserSettings\ServiceProvider',
),
  1. 'Setting' => 'Longestdrive\LaravelUserSettings\Facade' 添加到 config/app.php 中的 aliases
'aliases' => array(
  // ...
  'Setting' => 'Longestdrive\LaravelUserSettings\Facade',
),
  1. 运行 php artisan vendor:publish --provider="Longestdrive\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="Longestdrive\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);

最后

贡献

如果您想贡献,请随意创建分支并提交拉取请求。

错误报告

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

致谢

完全基于 https://github.com/Grimthorr/Laravel-user-settings - 我只更新到了L6