在我的config / app.php文件中,我添加了一些变量,我在控制器中使用了这些变量并查看了文件。见下面的变量:
'META_TITLE' => 'title'
'META_KEYWORDS' => 'keyword'
'META_DESCRIPTION' => 'description'
我已使用这些变量,例如Config::get("app.META_TITLE")
但我想根据要求在我的任何控制器中覆盖这些变量。
答案 0 :(得分:1)
这听起来像是一个简单的检查,看看是否需要覆盖该值。
在控制器中:
$title = Config::get("app.META_TITLE");
if ($titleOverrideValue) {
$title = $titleOverrideValue;
}
或者,以更短的方式:
$title = $titleOverrideValue ?: Config::get("app.META_TITLE");
答案 1 :(得分:0)
Laravel将所有配置文件值存储到一个单独的数组中。所以," Laravel方式"设置后覆盖配置变量的方法是编辑存储它们的数组:
config([
// overwriting values set in config/app.php
'app.META_TITLE' => 'new meta title',
'app.META_KEYWORDS' => 'new meta keywords',
'app.META_DESCRIPTION' => 'new meta description',
// in case you would like to overwrite values inside config/services.php
'services.facebook.client_id' => 'client id',
'services.facebook.client_secret' => 'client secret',
]);
使用此概念,您可以编辑任何配置文件中的任何变量集 - 只需指定它们存储在哪个配置文件中。
答案 2 :(得分:0)
要在运行时设置配置值,请将数组传递给
config
帮助器:
config(['app.timezone' => 'America/Chicago']);
但是请注意,如果您想在黄昏中覆盖环境变量,此方法会有所帮助:https://laracasts.com/discuss/channels/testing/how-to-change-env-variable-config-in-dusk-test?page=1#reply=475548