config()函数可动态设置单个或多个配置项,值仅当前请求有效;支持点号嵌套读写,但app_debug等核心配置须在config/app.php中定义。

可以直接用 config() 助手函数在控制器、模型或中间件里动态设置配置,值只在当前请求中有效,不写入文件,也不影响其他请求。
怎么设置单个配置项
传入键名和值两个参数即可:
-
config('site_name', '我的企业站');—— 设置顶层键 -
config('database.hostname', '10.0.1.5');—— 支持点号嵌套,等价于修改database数组下的hostname -
config('cache.type', 'redis');—— 常用于运行时切换缓存驱动
怎么批量设置多个配置
传入一个关联数组,一次性覆盖多项:
config(['app_debug' => true, 'default_return_type' => 'json']);config(['user.status_field' => 'is_active', 'user.level_map' => [1=>'普通', 2=>'管理员']]);- 注意:点号路径写法和数组嵌套写法效果一致,推荐统一用点号,更清晰
设置后怎么验证或读取
设完马上就能读,用同样函数不带第二个参数即可:
config('site_name'); // 返回 '我的企业站'config('user.level_map.2'); // 返回 '管理员'config('?database.port'); // 判断是否存在,返回 true/false
哪些配置不能靠它改
部分核心开关只在应用启动时读取一次,运行时设置无效:
-
app_debug、app_trace、pathinfo_depr、url_route_must - 这些必须写在
config/app.php里才生效 - 如果代码里写了
config('app_debug', true),实际不会开启调试模式
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











