robtrehy/laravel-user-preferences

为Laravel项目存储用户偏好的包。

3.1.1 2024-03-19 14:43 UTC

This package is auto-updated.

Last update: 2024-09-19 15:58:16 UTC


README

这是一个Laravel包,可用于存储和访问当前认证用户的偏好。偏好以JSON格式存储在单个数据库列中。默认配置将此信息存储在users表中的用户记录旁边。

安装

  1. 运行composer require robtrehy/laravel-user-preferences将此包包含到您的项目中。
  2. 使用以下命令发布配置文件
    php artisan vendor:publish --provider="RobTrehy\LaravelUserPreferences\UserPreferencesServiceProvider" --tag="config"
    
  3. 修改已发布的配置文件以满足您的需求。该文件位于config/user-preferences.php
  4. 向数据库添加preferences列。包含迁移文件的包,只需运行以下命令
    php artisan vendor:publish --provider="RobTrehy\LaravelUserPreferences\UserPreferencesServiceProvider" --tag="migrations" && php artisan migrate
    
    这将向配置文件中定义的表中添加配置文件中定义的列。

配置

打开config/user-preferences.php以调整包的配置。

如果此文件不存在,请运行php artisan vendor:public --provider="RobTrehy\LaravelUserPreferences\UserPreferencesServiceProvider" --tag="config"以创建默认配置文件。

tablecolumnprimary_key设置为满足您需求。其中primary_key应该是用户的ID。

Laravel User Preferences使用Laravel缓存驱动来减少对数据库的查询次数。默认情况下,Laravel使用file驱动进行缓存。如果您希望禁用此功能,可以使用null驱动。Laravel User Preferences提供的缓存键将在用户的id前添加前缀和后缀。您可以通过更改cache.prefixcache.suffix配置值来提供自己的前缀和后缀。

defaults数组中,您可以设置用户偏好的默认值。

示例配置

    'database' => [
        'table' => 'users',
        'column' => 'preferences',
        'primary_key' => 'id'
    ],
    'cache' => [
        'prefix' => 'user-',
        'suffix' => '-preferences',
    ],
    'defaults' => [
        'theme' => 'blue',
        'show_welcome' => true
    ]

用法

设置偏好

使用此方法为当前认证用户设置偏好。

UserPreferences::set(string [setting], [value]);

如果配置文件中设置了默认偏好值,则新值必须与默认值的类型匹配。

如果没有默认值,则可以保存任何类型的值。如果默认值类型不匹配,则UserPreferences::save()将返回一个InvalidArgumentException

重置所有默认偏好

使用此方法将当前认证用户重置为配置文件中找到的默认偏好。

UserPreferences::setDefaultPreferences();

注意:这将不会调整配置文件中没有默认值的用户偏好。

重置特定的默认偏好

使用此方法将单个偏好重置为配置文件中找到的默认值(如果存在),针对当前认证用户。如果没有在配置文件中设置默认值,则偏好将从当前认证用户的记录中删除。

UserPreferences::reset(string [setting]);

如果从配置文件中设置了默认值,则此方法将返回true。如果没有找到默认值,则此方法将返回false

获取偏好

使用此方法获取当前认证用户的偏好值。

UserPreferences::get(string [setting]);

获取所有偏好

使用此方法获取当前认证用户的所有偏好。

UserPreferences::all()

检查用户是否有特定的偏好

要检查当前认证用户是否有特定的偏好设置,可以调用

UserPreferences::has(string [setting]);

如果找到了值,则返回true;如果没有找到,则返回false

保存首选项

当调用UserPreferences::set();时,所有首选项将自动保存。

变更日志

有关最近更改的详细信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

许可证

此Laravel包是免费软件,在MIT许可的条款下分发。请参阅许可证