如何改变Laravel 5.1中的环境?

Hom*_*ien 15 php environment-variables production-environment test-environments laravel

我对Laravel环境工作的理解是,您在不同的环境中拥有不同的环境.因此,如果您在本地运行应用程序,则可以拥有一个.env.local文件.如果您正在测试或正在进行生产,您可以使用.env.testing.env.production.(如果我错了,请纠正我.)
默认情况下,我们获取.env可以编辑的文件.但任何人都可以告诉我在Laravel中改变环境的工作流程是什么.我尝试了文档,但我无法得到它.请帮我.

Moh*_*iri 26

当您安装Laravel 5.1时,您将获得两个文件.env,.env.example 如果您想在本地工作,则设置:

APP_ENV=local
APP_DEBUG=true
Run Code Online (Sandbox Code Playgroud)

在prod你设置

APP_ENV=production
APP_DEBUG=false
Run Code Online (Sandbox Code Playgroud)

调试模式下的错误消息

在此输入图像描述

来自生产模式的错误消息

在此输入图像描述

注意:你有两个.env文件.env.env.example..你也可以创建另一个你命名的文件.env.production但请记住,为了加载你的配置,你必须只需将文件重命名为.env

编辑:所以,如果您仍在本地工作,并且您需要另一个数据库进行测试,您可以创建另一个文件,因此总共有3个.env文件:

.env.production
.env.local1
.env.local2
Run Code Online (Sandbox Code Playgroud)

无论何时您想切换配置,只需将所需文件重命名为.env即可


Alm*_*k G 9

自从Laravel 5以来.env.local.php,.env.production.php已经弃用了这个想法.现在,在L5中,我们有单个.env文件,您可以在其中存储所有环境配置.要定义您的环境,您应该放入APP_ENV=local此文件.

在生产中部署项目后,您将.env在服务器上创建文件并进行定义APP_ENV=production

如果您使用像Laravel Forge这样的服务,它会为您提供存储环境数据的简单方法.但那是另一个故事:)

编辑

要使用多个数据库连接,您可以执行以下操作:

在你的config/database.php文件中

<?php
return array(

'default' => env('DEFAULT_DB_CONNECTION', 'mysql'),

'connections' => array(

    # Our primary database connection
    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'host1',
        'database'  => 'database1',
        'username'  => 'user1',
        'password'  => 'pass1'
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

    # Our secondary database connection
    'another_mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'host2',
        'database'  => 'database2',
        'username'  => 'user2',
        'password'  => 'pass2'
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
),
Run Code Online (Sandbox Code Playgroud)

);

然后,在.env文件中放入另一个键

DEFAULT_DB_CONNECTION=another_mysql
Run Code Online (Sandbox Code Playgroud)

当然,这种预定义了你的联系.如果您想要动态,可以执行以下操作

$users = DB::connection('another_db_connection')->select('users somehow');
Run Code Online (Sandbox Code Playgroud)

这样,无论在您的环境中设置什么,您都可以从辅助mysql连接获得结果

  • 如果我们仍然在本地工作并且我们需要另一个数据库配置来进行测试 在那种情况下,我们该怎么办? (2认同)