从数据库加载用户特定设置和站点设置并将数据传递给视图和控制器
Posted
技术标签:
【中文标题】从数据库加载用户特定设置和站点设置并将数据传递给视图和控制器【英文标题】:Load user spesific settings and site settings from db and pass data to view and controller 【发布时间】:2021-02-20 21:17:35 【问题描述】:我是一名 codeigniter 开发人员,最近我搬到了 laravel。
在 codeigniter 中,我曾经将默认 ci_controller
扩展为 my_controller
,对于所有其他控制器,我曾经扩展 my_controller
在my_controller
我从数据库和用户特定设置加载站点设置。
将其存储到变量中,以便我可以从视图或控制器中的任何位置访问它
优点是管理员或用户可以从前端更新此设置。
我可以存储用户特定设置,如货币符号、短信 API 密钥等
现在我正在 laravel 中寻找一种等效的方式。
通过它我可以将用户特定设置和站点设置存储在数据库中,并从任何控制器或刀片文件中检索。
我知道有一个 env 文件,但据我了解,这仅适用于存储站点设置。 但是如果我需要存储用户特定的设置呢?
【问题讨论】:
【参考方案1】:你只需要制作一个配置文件:
<?php
// file config/site.php
return [
'foo' => 'bar'
]
然后你需要缓存你的设置,在终端php artisan config:cache
运行这个命令
然后你可以在任何你想要的地方调用你的设置:
<?php
$foo = config('site.foo');
【讨论】:
但我想根据不同的用户角色或不同的用户 ID 获取设置 在User
模型上,你可以建立关系,例如settings
,你可以在任何你想要的地方检索设置,比如Auth::user()->settings
以上是关于从数据库加载用户特定设置和站点设置并将数据传递给视图和控制器的主要内容,如果未能解决你的问题,请参考以下文章
使用 MSW 测试 React-query,并将数据传递给子组件