我正在尝试根据环境更改Laravel配置变量,但是我不知道如何。
获取配置的代码是
Config::get( 'contants.api_url' );
我正在尝试为实时环境和开发环境提供单独的结果。
现实生活场景
我需要重写一些配置文件,因此使用开发环境的每个人都具有相同的基本配置。我不能为此使用.env文件,因为团队之间没有共享该文件,每个人都有自己的版本。
我尝试了什么:
我在这里Laravel 5 configuration - environments and overriding读到,您可以在/ config文件夹中创建与环境匹配的子文件夹,以覆盖默认配置文件。 las,这对我不起作用,关于主题(https://laravel.com/docs/5.4/configuration#retrieving-environment-configuration)的Laravel 5.4文档没有讨论此选项,因此我认为它可能已被弃用。
答案 0 :(得分:1)
一个选择是使用服务提供商。如果只打算覆盖一个或两个值,则最好使用<label> Filter by number: <input type="number" min="0" id="search_value" /></label>
<div class="container">
<table class="information">
<tr>
<td class="key">Info</td>
<td class="div_value">150</td>
</tr>
</table>
</div>
<div class="container">
<table class="information">
<tr>
<td class="key">Info</td>
<td class="div_value">200</td>
</tr>
</table>
</div>
<div class="container">
<table class="information">
<tr>
<td class="key">Info</td>
<td class="div_value">250</td>
</tr>
</table>
</div>
,否则我建议创建一个新服务(例如AppServiceProvider
)。
在服务提供商的ConfigServiceProvider
方法中,您可以添加以下内容:
boot()
答案 1 :(得分:0)
要根据环境更改配置变量,这样做:
示例文件: config/database.php
'mysql' => [
'driver' => mysql,
'url' => env('DATABASE_URL'),
'host'=> (env('APP_ENV') === 'local' ? env('DB_HOST_LOCAL') : env('DB_HOST_PRODUCTION')),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'default'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'options' => (env('APP_ENV') === 'local' ? [
'some_option' => env('SOME_ENV')
] : []),
],
在 Laravel 5.8 上测试和工作。