使用 Laravel 5、自定义数据库配置和 MAMP,我得到了非常奇怪的结果

I am getting very strange results with Laravel 5, a custom database config, and MAMP

我正在使用 Laravel 5 和一个 .env 以及一个 config/database.php 文件,内容如下:

'mysql' => array(
    'default' => 'mysql',
    'driver' => 'mysql',
    'unix_socket' => getenv('UNIX_SOCKET'),
    'host' => getenv('DB_HOST'),
    'database' => getenv('DB_DATABASE'),
    'username' => getenv('DB_USERNAME'),
    'password' => getenv('DB_PASSWORD'),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => ''),

php artisan migrate 当我 运行 它时失败,声称数据库未配置。但是,我怀疑我在我的配置文件中做错了什么,因为当我 运行 php artisan -V 我得到这个?

>php artisan -V
'mysql' => array(
    'default' => 'mysql',
    'driver' => 'mysql',
    'unix_socket' => getenv('UNIX_SOCKET'),
    'host' => getenv('DB_HOST'),
    'database' => getenv('DB_DATABASE'),
    'username' => getenv('DB_USERNAME'),
    'password' => getenv('DB_PASSWORD'),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => ''
),Laravel Framework version Lumen (5.1.1) (Laravel Components 5.1.*)

php artisan 似乎只是打印出我的配置文件并忽略了它?

Laravel 和 Lumen 配置文件需要正确构建才能工作。另外 getenv() 不是您想要的功能,您需要 env()。数据库配置需要像这样构造(只需换掉你的变量):

<?php

return [

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

    'connections' => [
        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'port'      => env('DB_PORT', 3306),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => env('DB_PREFIX', ''),
            'timezone'  => env('DB_TIMEZONE','+00:00'),
            'strict'    => false,
        ]
    ]
];

Here's a the full Lumen database config file for your reference.