我正在使用laravel 4框架开发一个项目。在我的database.php文件中,我收到以下错误:
Undefined index: driver
我的联系如下:
$connections = array(
'mysql' => array(
'read' => array(
'host' => 'localhost',
'driver' => 'mysql',
'database' => 'app_system',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'write' => array(
'host' => 'localhost',
'driver' => 'mysql',
'database' => 'app_system',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
'mysql2' => array(
'read' => array(
'host' => 'localhost',
'driver' => 'mysql',
'database' => 'app_userdata',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'write' => array(
'host' => 'localhost',
'driver' => 'mysql',
'database' => 'app_userdata',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
)
);
我也在使用环境来设置不同的mysql连接。代码有什么问题?
答案 0 :(得分:6)
在我的情况下,这是因为我删除了
'default' => 'mysql',
错误地从app / config / database.php。
答案 1 :(得分:3)
将“驱动程序”键移到某个级别可以解决问题。
$connections = array(
'mysql' => array(
'read' => array(
'host' => 'localhost',
'database' => 'app_system',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'write' => array(
'host' => 'localhost',
'database' => 'app_system',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'driver' => 'mysql'
),
共享的大多数其他参数也可以移动
$connections = array(
'mysql' => array(
'read' => array(
'host' => 'localhost',
),
'write' => array(
'host' => 'localhost',
),
'driver' => 'mysql',
'database' => 'app_system',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
答案 2 :(得分:2)
这种情况发生在我身上,因为我删除了
'default' =>env('DB_CONNECTION', 'mysql'),
来自app / config / database.php。这是必要的默认连接
答案 3 :(得分:1)
转到根目录.env 首先取这个值。
答案 4 :(得分:0)
如果您有多个不同的连接(例如,同一主机上的多个数据库)并且设置默认连接没有意义,则可以在Model类中指定连接。
<?php
namespace App\Http\Models;
use Illuminate\Database\Eloquent\Model;
class Character extends Model {
protected $connection = 'my_db_connection_name_here';
}
这将是config/database.php
中定义的连接。
答案 5 :(得分:0)
我通过添加一些权限解决了我的问题。我的.env文件存在,但不可读。我刚刚添加了755权限。