2016-08-06 21 views
2

Ich habe diese Situation in Laravel 5.2, wo, wenn ich dies tun:Laravel 5.2 SQLite-Verbindungsfehler

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

in der .env Datei I erhalten diese:

InvalidArgumentException in SQLiteConnector.php Linie 34: Datenbank (database/database.sqlite) existiert nicht.

zu versuchen, das laravel Fehler Rendering-System mit diesem Code aus einem Controller zu manipulieren:

<?php 

namespace App\Http\Controllers; 

use App\User; 

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

     return $user->toArray(); 
    } 
} 

Und das geht auch mit php artisan migrate Befehl, aber den controller-Code zu erhalten, den Fehler zu machen als erwartete ich habe dies zu tun:

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

um das Problem zu beheben, damit ich beide php artisan migrate bekommen und SampleController arbeiten ich dies in der config/database.php Datei gesetzt haben:

'connections' => [ 

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

Warum ist die default bedeutet sqlite zuzugreifen, als gegeben an der laravel website nicht funktioniert. Ist es ein Fehler, den ich beachten sollte?

+0

Die 'config.php' Datei normalerweise enthalten sollte' 'Datenbank' => env ('DB_DATABASE', Datenbankpfad ('database.sqlite')), 'in seinem '' sqlite''-Array. –

Antwort

2

Die normale Konfiguration in der config.php Datei wird erwartet

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

Darüber hinaus ist der geeignete Weg, um die DB_DATABASE in der .env Datei zu erwähnen ist, die absoluten Dateinamen, wie /var/www/laravel/database/database.sqlite nicht die relative Position angeben .

Zum Beispiel in Windows

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

Und das ist, was in den Laravel Documentation erwähnt wird

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

@Shafi, die Datei ist schon da! –

+0

@ Shafi. ausgezeichnete Antwort, danke eine Million. –