Hai*_*ood 45 php database environment laravel
我正在移动Laravel框架,但我遇到了数据库设置问题,
具体来说,我有我的环境设置,他们正在为application.php配置文件工作正常,但database.php配置文件似乎没有任何效果.
即使我在我的环境文件夹中有一个database.php配置文件它永远不会被加载,我将一堆无效字符(键盘mash)放入文件中以使php抛出错误,但它永远不会被命中.
Laravel不支持基于环境的数据库设置吗?或者我做错了吗?
Lau*_*nce 64
您绝对可以按环境设置数据库设置(以及任何其他配置设置).
Laravel 3(Laravel 4和Laravel 5见下文):
首先 - 您需要$environments
在您的定义paths.php
中将其设置为以下内容:
$environments = array(
'development' => array('*.dev'),
'production' => array('*.com'),
);
Run Code Online (Sandbox Code Playgroud)
Laravel将自动查找此变量,如果设置,将使用关联的配置.
通常你有一个config
文件夹,其设置如database.php
和auth.php
现在只需为Laravel_Env
您计划使用的每个文件夹创建一个新文件夹(例如开发).你最终会得到像这样的文件夹结构;
/application
/config
/development
database.php
/production
database.php
application.php
config.php
database.php
...
user_agents.php
Run Code Online (Sandbox Code Playgroud)
你会注意到我只包含database.php
在每个子文件夹中.Laravel将始终首先加载默认配置设置,然后使用环境设置中的任何自定义配置覆盖它们.
最后,在你的开发/数据库文件中,你会有这样的东西;
<?php
return array(
'default' => 'mysql'
);
Run Code Online (Sandbox Code Playgroud)
ps我刚刚在目前3.2.12版本的Laravel上测试了它 - 它绝对有效.
额外提示:您还可以自动为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'),
);
Run Code Online (Sandbox Code Playgroud)
Artisan现在将使用您的开发环境运行.如果部署到实时服务器 - 重新运行这些步骤以获取服务器的hostname(),并且可以为服务器配置特定的工匠配置!
对于Laravel 4:
始终是默认环境production
.但是在start.php文件中,您可以定义其他环境.
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
Run Code Online (Sandbox Code Playgroud)
在Linux和Mac上,您可以在终端中确定您hostname
的类型hostname
- 它将输出您的计算机的名称.在Windows上放置文件dd(gethostname());
的开头routes.php
- 并运行一次网站 - 它将显示您的计算机的当前主机名.
要将当前环境作为应用程序中的变量 - 请在此处阅读此SO答案.Laravel 4:我怎样才能获得环境价值?
对于Laravel 5:
有一个配置文件,.env
在根目录中调用.
观看这个laracast,配置完全解释.
如果您正在使用工匠(laravel命令行)您需要添加的每个命令
artisan bla bla bla --env=Development
Run Code Online (Sandbox Code Playgroud)
要么
artisan bla bla bla --env=Production
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29372 次 |
最近记录: |