使用 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.
我正在使用 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.