2016-03-28 1 views
1

Ich folge der Serie Laravel 5 von Grund auf in Laracasts und ich bin speziell in der Lektion "Daten holen".InvalidArgumentException in SQLiteConnector.php Zeile 34: Datenbank (Heimstätte) existiert nicht

Ich erstellte die Datei database.sqlite, ich fügte einige Daten aus dem Tinker hinzu und konnte sie in der Konsole abrufen. Dann versuche ich zu replizieren, was das Video macht.

Meine Karten-Controller:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

use App\Http\Requests; 

class CardsController extends Controller 
{ 
    public function index() 
    { 
     $cards = \DB::table('cards')->get(); 
     return view('cards.index', compact('cards')); 
    } 
} 

Allerdings, wenn ich versuche, die/Karten Route ich folgende Fehlermeldung

InvalidArgumentException in SQLiteConnector.php line 34: 
Database (homestead) does not exist. 

Das ist meine env Datei

APP_ENV=local 
APP_DEBUG=true 
APP_KEY=base64:P3ZgRMRkb2e8+x7S9rDLLB+bKJdR5Unpj8zXBUIHIZE= 
APP_URL=http://localhost 

DB_CONNECTION=sqlite 
DB_FILE=database.sqlite 


CACHE_DRIVER=file 
SESSION_DRIVER=file 
QUEUE_DRIVER=sync 

REDIS_HOST=127.0.0.1 
REDIS_PASSWORD=null 
REDIS_PORT=6379 

MAIL_DRIVER=smtp 
MAIL_HOST=mailtrap.io 
MAIL_PORT=2525 
MAIL_USERNAME=null 
MAIL_PASSWORD=null 
MAIL_ENCRYPTION=null 

Antwort

2

habe zu laden Unter dieser Zeile, auf die in Ihrem Fehler verwiesen wird, steht Folgendes:

// Here we'll verify that the SQLite database exists before going any further 
    // as the developer probably wants to know if the database exists and this 
    // SQLite driver will not throw any exception if it does not by default. 
    if ($path === false) { 
     throw new InvalidArgumentException("Database (${config['database']}) does not exist."); 
    } 

Mit Blick auf den Kommentar oberhalb der Methode scheint es, dass Ihr Pfad nicht richtig festgelegt ist. Ich glaube, die richtige Umgebungsvariable sein sollte:

DB_DATABASE=database/database.sqlite

statt

für diesen Abschnitt

DB_FILE=database/database.sqlite

Wenn nicht, überprüfen Sie Ihre config/database.php Datei und aussehen:

'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => env('DB_DATABASE', database_path('database.sqlite')), // this line! 
     'prefix' => '', 
    ], 
1

Mir ist gerade auch aufgefallen (zumindest in Laravel Version 5.2.29 auf einem Mac) der Pfad muss ein absolutes p sein ath. Das Seltsame ist, dass zum Ausführen von Migrationen ein relativer Pfad funktioniert, aber die Anwendung dann fehlschlägt, wenn versucht wird, danach auf die Datenbank zuzugreifen