Laravel 5.4基于环境的配置文件

时间:2018-12-23 10:37:23

标签: php laravel symfony laravel-5 laravel-5.4

我正在尝试根据环境更改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文档没有讨论此选项,因此我认为它可能已被弃用。

2 个答案:

答案 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 上测试和工作。