您绝对可以按环境设置数据库设置(以及任何其他配置设置)。
对于 Laravel 3(对于 Laravel 4 和 Laravel 5,请参见下文):
首先 - 您需要在 paths.php 中定义 $environments 并将其设置为如下内容:
$environments = array(
'development' => array('*.dev'),
'production' => array('*.com'),
);
Laravel 会自动寻找这个变量,如果设置了,就会使用相关的配置。
通常您有一个config 文件夹,其中包含database.php 和auth.php 等设置
现在只需为您计划使用的每个 Laravel_Env 创建一个新文件夹(例如 Development)。您最终会得到这样的文件夹结构;
/application
/config
/development
database.php
/production
database.php
application.php
config.php
database.php
...
user_agents.php
您会注意到我只在每个子文件夹中包含了database.php。 Laravel 将始终首先加载默认配置设置,然后使用环境设置中的任何自定义配置覆盖它们。
最后,在你的开发/数据库文件中,你会有这样的东西;
<?php
return array(
'default' => 'mysql'
);
附言我刚刚在 Laravel 的当前 3.2.12 版本上测试了它——它确实有效。
额外提示:您还可以为 Artisan 自动设置环境,因此您不必在每个命令行中手动包含环境!为此:
您需要知道运行 Artisan 的“主机名”。要找出答案 - 临时编辑根文件夹中的 artisan.php,并将 var_dump(gethostname()); 添加到第 2 行(即高于一切)。
从命令行运行php artisan。您将获得一个带有您的主机名的字符串转储。就我而言,它是“TSE-Win7”;
删除对artisan.php文件的更改
将您的主机名(即“TSE-Win7”)添加到环境中。
你应该得到这样的结果:
$environments = array(
'development' => array('*.dev', 'TSE-Win7'),
'production' => array('*.com'),
);
Artisan 现在将使用您的开发环境运行。如果您部署到实时服务器 - 重新运行这些步骤以获取服务器的主机名(),您可以为服务器配置特定的工匠配置!
对于 Laravel 4:
默认环境始终为production。但在您的 start.php 文件中,您可以定义其他环境。
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
在 Linux 和 Mac 上,您可以通过在终端中键入 hostname 来确定您的 hostname - 它会输出您的计算机名称。在 Windows 上,将 dd(gethostname()); 放在您的 routes.php 文件的开头 - 并运行该网站一次 - 它会显示您计算机的当前主机名。
要在您的应用程序中将当前环境作为变量获取 - 请在此处阅读此 SO 答案。 Laravel 4: how can I get the environment value?
对于 Laravel 5:
在您的根目录中有一个名为.env 的配置文件。
Watch this laracast,配置解释完整。