config下的A文件怎么读取B文件的配置项呢?

我想在 config/app.php 里面读取 config/xxx.php 里配置的name项。怎么读取呢?

比如下面这段代码里

    'public' => [
        'driver' => 'local',
        'root' => public_path('uploads'),
        'url' => config('xxx.name').'/uploads',
        'visibility' => 'public',
    ],

里面的config('xxx.name')是读不出来配置的。无效的。有什么办法吗?

乌鸦嘴社区 wyz.xyz 来玩。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

file

加载应用时,会逐个读取配置文件的选项存进一个配置数组里。从 config 文件夹下读取文件列表,根据文件名进行排序后,会先读取 app.php 文件,在 app.php 中出现例如 config('database.default') ,由于还未加载 database.php 文件,因此在配置数组中找不到该配置选项,就得到 null 结果了。

最后还是建议尽可能在 config 文件中使用 env 函数吧,这个函数的设计就是为了 config 文件服务的。在 config 文件中用 config 函数跟作者的用意是不相符的。或者也可以自己写一个方法去读取配置。

4年前 评论
讨论数量: 5

把 config('xxx.name') 改为 对应的 env('XXX_NAME'),就好了

4年前 评论
shebaoting (楼主) 4年前

可以借鉴楼上的答案,两个配置项共用一个 env 配置,或者两个都固定一下。由于加载顺序问题是无法直接读取另一配置文件的。

4年前 评论
JaguarJack

没有办法

4年前 评论

file

加载应用时,会逐个读取配置文件的选项存进一个配置数组里。从 config 文件夹下读取文件列表,根据文件名进行排序后,会先读取 app.php 文件,在 app.php 中出现例如 config('database.default') ,由于还未加载 database.php 文件,因此在配置数组中找不到该配置选项,就得到 null 结果了。

最后还是建议尽可能在 config 文件中使用 env 函数吧,这个函数的设计就是为了 config 文件服务的。在 config 文件中用 config 函数跟作者的用意是不相符的。或者也可以自己写一个方法去读取配置。

4年前 评论
快乐壮

在服务提供者里动态的读取设置就可以吧 在config 配置文件里读取 config 函数应该还没有初始化吧

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!