2016-08-06 43 views
2

我在laravel 5.2這種情況下,如果我這樣做:在.env文件laravel 5.2 sqlite的連接錯誤

DB_CONNECTION=sqlite 
DB_HOST=127.0.0.1 
DB_PORT= 
DB_DATABASE=database/database.sqlite 
DB_USERNAME= 
DB_PASSWORD= 

我得到這樣:

InvalidArgumentException在SQLiteConnector.php線34: 數據庫(database/database.sqlite)不存在。

在試圖從控制器操縱這個代碼laravel錯誤渲染系統:

<?php 

namespace App\Http\Controllers; 

use App\User; 

class SampleController extends Controller 
{ 
    public function findUser() 
    { 
     $user = User::firstOrFail(); 

     return $user->toArray(); 
    } 
} 

而這遠遠與php artisan migrate命令,但要獲得controller代碼來呈現誤差預計我必須這樣做:

DB_CONNECTION=sqlite 
DB_HOST=127.0.0.1 
DB_PORT= 
DB_DATABASE=../database/database.sqlite 
DB_USERNAME= 
DB_PASSWORD= 

要解決此問題,所以我得到兩個php artisan migrateSampleController工作我在config/database.php文件中把這個:

'connections' => [ 

    'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => database_path('database.sqlite'), 
     'prefix' => '', 
    ], 

爲什麼default意味着在laravel website不工作給出訪問sqlite。這是我應該注意的錯誤嗎?

+0

的'config.php'文件通常預期包含' '數據庫'=> ENV提到('DB_DATABASE',database_path('database.sqlite')),'在''sqlite''數組中。 –

回答

2

config.php文件中的正常配置預計是

'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => env('DB_DATABASE', database_path('database.sqlite')), 
     'prefix' => '', 
    ], 

此外,適當的方式提及在.env文件DB_DATABASE是指定絕對文件名,如/var/www/laravel/database/database.sqlite不是相對位置。

例如,在Windows

DB_DATABASE=C:\wamp\www\laravel\database\database.sqlite 

而這就是在Laravel Documentation

DB_DATABASE=/absolute/path/to/database.sqlite 
+0

@Shafi,文件已經存在! –

+0

@Shafi。優秀的答案,謝謝萬元。 –