我在一小时前开始学习Laravel,并继续学习。
我的数据库设置如下(文件:app / config / database.php):
'default' => 'mysql',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'laraveltest',
'username' => 'root',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
在hometead上的mySQL中,我已经创建了laraveltest
数据库。我还在database/migration
目录中创建了迁移文件,其中包含以下代码:
public function up()
{
Schema::create('users', function($table)
{
$table->increments('id');
$table->string('email')->unique();
$table->string('name');
$table->timestamps();
});
}
和迁移命令是:
vagrant@homestead:~/Code/Laravel$ php artisan migrate
Migration table created successfully.
Migrated: 2014_08_14_195103_create_users_table
如图所示,表用户在homestead
数据库中创建,而不是在laraveltest
数据库中创建。有人可以告诉我哪里出错了,以及如何强制laravel使用laraveltest
数据库?
首次评论后修改 文件:bootstrap / start.php
$env = $app->detectEnvironment(array(
'local' => array('homestead'),
));
答案 0 :(得分:14)
这很可能是环境问题。检查app / config / local /中是否有数据库配置文件,并检查它是否具有正确的设置。
答案 1 :(得分:12)
如果有人发现这是为了寻找Laravel 5或更高版本的答案:它与@camroncade说的相同,但在这种情况下,它是您想要查看的项目根目录中的.env
文件。
答案 2 :(得分:2)
我目前正在处理这个问题。多次更改.env文件以及config.php文件。似乎没什么用。 在对框架进行深入挖掘之后,我找到了一个可接受的临时解决方法,该问题与任何Laravel 5.0.2的异常都没有冲突。
注意:我目前在Windows 8.1操作系统上使用带有php 7.0.2 phpmyadmin 4.4.15.1的Ampps 3.4
文件“ ConnectionFactory.php ”内 该文件位于“laravel \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors” 向下滚动至位于第41行的“公共功能” 在此功能中,您可以执行以下 此声明后的
$ config = $ this-> parseConfig($ config,$ name);
应位于第43行:
$ config ['database'] ='在此处插入数据库的名称';
此更改将允许Laravel继续执行正常流程,不会对框架或项目产生任何负面影响。直到这个错误由Laravel或社区的制造商修复。
然后开心编码! =)