2014-01-20 41 views
2

我正在開發一個使用laravel 4框架的項目。在我database.php中的文件我得到以下錯誤:laravel數據庫連接返回undefined索引錯誤

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

將「驅動程序」鍵上移到某個級別可以解決問題。

$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' 
    ), 

大多數共享其他PARAMS可我的感動以及

$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

我做到了,但它不起作用。我也更新laravel到4.1,仍然得到錯誤。 –

+0

你仍然得到相同的錯誤?我從我一直在工作的L4.1網站複製/粘貼該代碼(只是更改值)。您還需要對mysql2部分進行更改(儘管我最初嘗試僅使用1個連接部分進行調試)。 – EspadaV8

4

對我來說,那是因爲我刪除

'default' => 'mysql', 

從應用程序/配置/數據庫錯誤.PHP。

+0

謝謝你這麼多! –

1

轉到根目錄.env 首先取這個值。

2

這發生在我身上,因爲我刪除

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

從應用程序/配置/ database.php中。它需要有一個默認連接

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中定義的連接上。