Laravel 动态配置设置

2024-03-07

我在我的项目中使用一个包,它在里面存储一个设置config/packagename

我想在配置文件中动态更改此值,这就是文件结构当前的样子;

<?php

return [
    'view_id' => '118754561',

    'cache_lifetime_in_minutes' => 60 * 24,
];

我想把它改成这样——

'view_id' => Auth::user()->id,

您可以在配置文件中执行此操作,还是必须存储某种变量以便稍后在控制器中更新。有没有办法将这些变量放在 env 文件中并从控制器访问这些新变量?


这也是一个动态更新 .env 文件的通用解决方案(各自的键/值对)

  1. 更改您的 config/packagename 中的设置,如下所示:
return [
    'view_id' => env('VIEW_ID', '118754561'),
    etc...
]
  1. 将初始值添加到 .env 中:

    VIEW_ID=118754561

  2. 在适当的控制器(例如 AuthController)中,使用下面的代码并调用如下函数:updateDotEnv('VIEW_ID', Auth::User()->id)

    protected function updateDotEnv($key, $newValue, $delim='')
    {
    
        $path = base_path('.env');
        // get old value from current env
        $oldValue = env($key);
    
        // was there any change?
        if ($oldValue === $newValue) {
            return;
        }
    
        // rewrite file content with changed data
        if (file_exists($path)) {
            // replace current value with new value 
            file_put_contents(
                $path, str_replace(
                    $key.'='.$delim.$oldValue.$delim, 
                    $key.'='.$delim.$newValue.$delim, 
                    file_get_contents($path)
                )
            );
        }
    }
    

(如果您想让此函数更加通用,以便在 .env 中使用 key=value 对,则需要 $delim 参数,其中值必须用双引号引起来,因为它们包含空格)。

诚然,如果您的项目中有多个用户同时使用此包,这可能不是一个好的解决方案。所以这取决于你使用这个包的目的。

注意:如果您打算从其他类中使用该函数,当然您需要将该函数公开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 动态配置设置 的相关文章

  • PHP DateTime::修改加减月份

    我一直在与DateTime class http www php net manual en class datetime php最近在添加月份时遇到了我认为是一个错误 经过一番研究后 看来这不是一个错误 而是按预期工作 根据查到的文档he
  • 如何使用 zend 导入 CSV

    如何使用 zend 框架导入 CSV 文件 我应该使用 zend file transfer 还是有任何我必须研究的特殊类 另外 如果我使用 zend file transfer 是否有任何特殊的 CSV 验证器 你不必使用任何 zend
  • 图像上的文字

    是否可以在 php 中动态地将文本放置在图像上 然后将其发送到 rss feed 是的 可以使用GD http www php net gd函数或图像魔术师 http www php net imagemagick功能 具体取决于您的服务器
  • 递归BBCode解析

    我正在尝试解析脚本中的 BBCode 现在 它可以无缝工作 直到我尝试缩进不仅仅是粗体或下划线的 BBCode 例如剧透 网址 字体大小等 然后它就会搞砸 这是我的代码 function parse bbcode text global d
  • 如何在 PHP 中进行静态代码分析? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有PHP源文件的静态分析工具 二进制文件本身可以检查语法错误 但我正在寻找功能更多的东西 例如 未使用的变量赋值 未先初始化就分配到的
  • 用掩码替换字符串模式的最快方法

    我有类似的字符串 string string key foo bar 和参数数组 params array foo gt 1 bar gt 2 如何以 string 模式替换此参数 预期结果是 string key 1 2 首先 您需要重写
  • count 和 groupby 在一个查询中一起使用

    以下查询正在获取页面上的一些产品信息 这很好 但我也想以文本形式显示它出现的产品编号 但是 我使用了groupby但我也想用count on pro id SELECT FROM cart WHERE session id SESSION
  • 订单编辑页面中的 WooCommerce 自定义字段

    Display custom field Orders edit page add action woocommerce before order itemmeta storage location of order items 10 3
  • htaccess隐藏php扩展时出错,只隐藏html

    我在使用 htaccess 隐藏网站上的 php 扩展时遇到问题 我看到很多网站试图修复它 但没有任何结果 但只有 html 扩展名对我来说是隐藏的 在我的 htaccess 上 我用这个来隐藏扩展 它就在错误页面之后 这是我的 htacc
  • 如何启用 php curl 以在 php cli 中使用

    我已经在没有服务器的情况下在我的计算机上安装了 php 并使用 cli 运行它 但未启用 php curl 我不知道如何执行此操作 如果有人遇到此线程并使用 wamp 服务器 这里有一个针对上述问题的快速解决方案http forum wam
  • 使用 PHP SDK 获取页面的最新 Facebook 帖子

    以下代码位于名为 facebook posts php 的文件内 我从索引文件中调用该文件 如下所示 然而 这段代码放到哪里 却没有任何反应 因此 成功和捕获错误都不会返回错误 正如我所见 我尝试过绝对网址 但这也不起作用 我隐藏了 api
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • 有没有办法获取 PHP 中可用区域设置的列表?

    在Java中 你可以调用Locale getAvailableLocales 获取可用区域设置的列表 我期待 PHP 的同等功能Locale http php net manual en class locale php类 但找不到 有没有
  • JQuery 验证不起作用

    我有一种表单 其中一个输入类型的值为 名字 但这可以在 onfocus 函数上更改我想验证此输入字段 如果它为空白或 名字 我有两个 jQuery 文件jquery 1 4 2 min js jquery validate pack js
  • 下载表格 - 选择文件合并到 Zip 中

    我希望创建一个表单 用户可以从手册列表中进行选择 总共10个 他们可能只想下载 3 份小册子 或 6 份 或 1 份 或 9 份小册子 但想法是他们选择所需的小册子 然后用脚本组合一个包含所需小册子的 zip 文件 任何人都可以提出任何建议
  • PHP 中的数据清理[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 创建具有动态更新变量的数组

    我有一些 PHP 变量 它们的名称直接链接到它们包含的函数 是否有办法自动创建这些变量 以便我可以使用所有变量 00 200 这就是我现在正在做的事情 regdays00 is user reg matured 00 regdays02 i
  • cakephp 3.0 如何使用值而不是 id 填充选择字段

    我一直在寻找以前的答案 但我找到的答案与旧的 cakephp 版本有关 我有两个表 杂志 和 问题 其中存在关系 问题 属于 杂志 问题表如下所示 public function initialize array config this g
  • PHP 启动:运行单元测试时无法加载动态库

    当我尝试运行单元测试时 出现此错误 PHP 警告 PHP 启动 无法加载动态库 bz2 尝试过 xampp php ext bz2 找不到指定的模块 xampp php ext php bz2 dll 找不到指定的模块 在未知的第 0 行
  • 未加载 Firebird 扩展

    我正在尝试在 PHP 中使用 Firebird 扩展 我有扩展文件 php pdo firebird dll php interbase dll in my ext文件夹 我将它们添加到我的php ini像这样文件 PHP PDO FIRE

随机推荐

  • WriteFile 与 TransmitFile 对于传输后需要从服务器删除的大文件

    我必须触发用户将大文件下载到网络浏览器 在其中创建要在服务器上传输的文件 然后立即将其删除 我已经找到足够多的例子来表明我应该使用 Response TransmitFile 或 Response WriteFile 但听说两者都存在问题
  • 带有授权的 HTTPS 请求无法通过 Safari 工作

    Context 使用 Safari IOS 和 MacOS 通过 HTTPS 两者一起 的带有授权标头的 XHR 请求不会到达服务器 但它适用于 IE Chrome 和 Firefox 我使用 Letscrypt 生成的有效证书 浏览器不会
  • 为什么我们在 angularjs 中注入两次依赖项?

    我是角度新手 想知道为什么以及何时我们应该注入所有需要的依赖项两次 例子 var analysisApp angular module analysisApp analysisApp controller analysisControlle
  • jQuery:完成拖动而不触发点击事件

    我正在尝试设置以下页面 如果单击该按钮 您可以看到一个 div 如果单击该 div 您可以看到下一个 div 如果移动按钮 则不会出现 点击 所需行为 我遇到的问题是 如果你移动 div 下一个 div 就会出现 这不是我想要的 拖动事件完
  • 我是否在 PHP 的 `crypt()` 中发现了错误?

    我想我可能发现了 PHP 中的一个错误crypt Windows 下的功能 However 我承认这可能是我的错 PHP 有数百万人使用 有数千人在使用 PHP 我的代码被数十人使用并由我处理 这个说法最好编码恐怖中的解释 http www
  • 匹配器应该有_many 和自定义关系名称

    如何使用测试此 ActiveRecord 关系shoulda匹配者 Models class User lt ActiveRecord Base has many articles end class Article lt ActiveRe
  • 简单数据访问层

    谁能建议一个简单的数据访问层 C NET 不热衷于使用微软应用程序数据访问块 显得非常臃肿和矫枉过正 也因为各种原因不想使用LINQ to SQL 出于各种原因 我想在此基础上创建我们自己的内部 ORM 过去我总是已经构建了数据访问层 所以
  • LINQ 性能 Count 与Where 和 Count

    public class Group public string Name get set 测试 List
  • 使用 jQuery data() 方法存储函数

    jQuery data 文档 http api jquery com data 说如下 The data 方法允许我们将任何类型的数据附加到 DOM 元素 我认为 任何类型 也指函数 假设我有一个 id 为 foo 的 div 如下所示 d
  • Google Maps iOS SDK,获取用户的当前位置

    For my iOS应用程序 内置iOS7 我需要在应用程序加载时显示用户的当前位置 我正在使用Google Maps iOS SDK 我正在关注这个谷歌地图 https developers google com maps documen
  • SSIS 可以支持加载每行具有不同列长度的文件吗?

    目前 我每天收到大约 75 万行的文件 每行开头都有一个 3 个字符的标识符 对于每个标识符 列数可以更改 但特定于标识符 例如 SRH 将始终有 6 列 AAA 将始终有 10 列 依此类推 我希望能够通过 SSIS 将此文件自动生成 S
  • TinyMCE execCommand 返回未定义

    我试图从我之前创建的特定文本区域中删除tinyMCE 但以下命令不断产生 未定义 错误 使用firebug控制台检查 tinyMCE execCommand mceFocus false textarea plainText tinyMCE
  • 最高的 firebase 版本代码也用于编译播放服务库

    我在我的项目中使用某些 firebase 和 play 服务库 将播放服务插件版本更新至 4 0 0 后 由于 firebase 和 play 服务现在对每个库使用不同的版本编码策略 其中任一库中的最高版本代码将被所有其他库替换 这导致无法
  • 为什么 HRESULT 0 表示成功?

    我刚刚在处理 HRESULT 返回值时遇到了一些非常尴尬的事情 似乎成功为 0 失败为 1 这背后的逻辑是什么 我实际上尝试过if hr 并悲惨地失败了 浪费了我生命的一个小时 直到我发现实际的成功 retval 是 0 我想称想到这个的人
  • 没有活跃的源代码控制提供商

    我在 Ubuntu 上安装的 VS Code 编辑器表明它没有活动的源代码控制提供程序 我正在使用 Ubuntu 并且正在运行 git version 表明它是v2 18 0 我的项目中有一个 git 文件夹 我该如何解决这个问题 另外两个
  • 使用对象检测API的默认配置时,图像缩放器的不同尺寸有何影响

    我试图使用 Tensorflow 的对象检测 API 来训练模型 我正在使用更快的 rcnn resnet101 的示例配置 https github com tensorflow models blob master object det
  • 如何在windows下制作Qt mysql驱动?

    我已经在linux中多次构建了qsqlmysql so 我完全熟悉这个过程 但现在在愚蠢的窗口中 无论我做什么 我都无法构建它 我使用的是Qt5 12 1 最新 和Microsoft VS enterprise 2017编译器 我已经下载了
  • 在客户设备上测试 iPhone 应用程序

    我已经为 iphone 创建了一个应用程序 我还有一个苹果开发者计划证书来编译我的应用程序 现在我想将其发送给我的客户进行审核 我怎样才能做到这一点 他需要什么证书吗 谢谢你 是的 您需要前往苹果会员中心 然后前往配置门户 您需要在那里注册
  • 将 FOR XML 转换为 Varchar(max) [重复]

    这个问题在这里已经有答案了 我有一个返回 XML 的查询 我想将其转换为 varchar 我的查询返回 93 643 个 XML 字符 当我尝试将 xml 结果转换为 varchar 时 将结果集复制到文本编辑器时只得到 43 679 个字
  • Laravel 动态配置设置

    我在我的项目中使用一个包 它在里面存储一个设置config packagename 我想在配置文件中动态更改此值 这就是文件结构当前的样子