提问人:Onur 提问时间:1/20/2014 更新时间:11/22/2018 访问量:21370
Laravel数据库连接返回未定义的索引错误
laravel database connection returns undefined index error
问:
我正在使用 laravel 4 框架开发一个项目。在我的数据库.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连接。代码有什么问题?
答:
3赞
EspadaV8
1/20/2014
#1
将“驱动程序”键向上移动一个级别应该可以解决问题。
$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' => '',
),
评论
0赞
Onur
1/20/2014
我做到了,但它不起作用。我还将 laravel 更新到 4.1,但仍然收到错误。
0赞
EspadaV8
1/20/2014
你仍然遇到同样的错误吗?我从我一直在处理的工作 L4.1 站点复制/粘贴该代码(只是更改值)。您还需要对 mysql2 部分进行更改(尽管我最初只尝试使用 1 个连接部分进行调试)。
6赞
ubuntus
7/2/2015
#2
就我而言,这是因为我删除了
'default' => 'mysql',
错误地从应用程序/配置/数据库.php。
1赞
a3rxander
1/14/2016
#3
转到根目录 .env 首先取此值。
3赞
Noe Lopez
6/26/2016
#4
这发生在我身上,因为我删除了
'default' =>env('DB_CONNECTION', 'mysql'),
从app/config/database.php。有必要有一个默认连接
0赞
The Unknown Dev
9/9/2017
#5
如果有多个不同的连接(例如,连接到同一主机上的多个数据库),并且设置默认连接没有意义,则可以在 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
0赞
veyselsahin
11/22/2018
#6
我通过添加一些权限解决了我的问题。我的 .env 文件存在但不可读。我刚刚添加了 755 权限。
评论