robtrehy / laravel-user-preferences
为Laravel项目存储用户偏好的包。
Requires
- php: ^8.0
- laravel/framework: ^9.0|^10.0|^11.0
Requires (Dev)
- nunomaduro/collision: ^6.4|^7.0|^8.0
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.5|^10.5|^11.0
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-19 15:58:16 UTC
README
这是一个Laravel包,可用于存储和访问当前认证用户的偏好。偏好以JSON格式存储在单个数据库列中。默认配置将此信息存储在users
表中的用户记录旁边。
安装
- 运行
composer require robtrehy/laravel-user-preferences
将此包包含到您的项目中。 - 使用以下命令发布配置文件
php artisan vendor:publish --provider="RobTrehy\LaravelUserPreferences\UserPreferencesServiceProvider" --tag="config"
- 修改已发布的配置文件以满足您的需求。该文件位于
config/user-preferences.php
。 - 向数据库添加
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"
以创建默认配置文件。
将table
、column
和primary_key
设置为满足您需求。其中primary_key
应该是用户的ID。
Laravel User Preferences使用Laravel缓存驱动来减少对数据库的查询次数。默认情况下,Laravel使用file
驱动进行缓存。如果您希望禁用此功能,可以使用null
驱动。Laravel User Preferences提供的缓存键将在用户的id
前添加前缀和后缀。您可以通过更改cache.prefix
和cache.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许可的条款下分发。请参阅许可证。