从数据库加载用户特定设置和站点设置并将数据传递给视图和控制器

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()-&gt;settings

以上是关于从数据库加载用户特定设置和站点设置并将数据传递给视图和控制器的主要内容,如果未能解决你的问题,请参考以下文章

使用 MSW 测试 React-query,并将数据传递给子组件

CppUTest:如何将更多数据传递给特定的模拟调用?

如何使用 IOCP 将用户定义的数据传递给工作线程?

为所有实例设置组件属性/将相同的数据传递给所有组件实例

在应用程序完成获取并将获取的数据传递给它之后,我应该如何启动一个新的 Activity?

如何将 props 数据传递给 compose()