2016-04-19 12 views
0

Ich erstelle ein kleines Modell für ein soziales Netzwerk in Laravel 5. Ich möchte SQLite als meine Datenbank verwenden, um die Dinge klein und lokal zu halten. Ich habe jedoch Schwierigkeiten, es zur Arbeit zu bringen.SQLite als meine Datenbank in Laravel 5 setzen

mein Code hier (mit Messer), wo ich nur eine Tabelle verwenden, um eine Zeile in der Datenbank anzuzeigen:

@extends('layouts.master') 

@section('title') 
    Testing2 
@stop 

@section('content') 
This is a second test 
<a href="/">Back to page 1</a> 

<table> 
    <tr><th>Author</th> 
     <th>Text</th></tr> 
    @foreach($posts as $post) 
     <tr> 
      <td> 
       {{$posts->Author}} 
      </td> 
     </tr> 
     <tr> 
      <td> 
       {{$posts->Text}} 
      </td> 
     </tr> 
    @endforeach 
</table> 
@stop 

„Autor“ und „Text“ sind 2 Spalten in meiner Datenbank. Hier wird die Route I verwenden, um die Seite zu erzeugen:

Route::get('test2', function() { 
    $sql = "select * from Posts"; 
    $posts = DB::select($sql); 
    return View::make('test2')->withPosts($posts); 
}); 

ich meine Datenbank weiß, es ist, habe ich es in dem/Datenbank-Verzeichnis meiner App gelegt:

enter image description here

Schließlich ich veränderte die config \ database.php Datei SQLite als Standarddatenbank zu setzen:

enter image description here

Wenn ich versuche und Blick Die Blade-Seite, die die Route-Funktion verwendet, erhalte den folgenden Fehler: "SQLSTATE [HY000] [2002] Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer dies aktiv abgelehnt hat."

Ich mache etwas falsch mit der Verbindung zu meiner Datenbank, aber ich weiß nicht was. Habe ich es richtig eingerichtet?

+2

Wie sieht Ihre '.env' Datei aus? Es sucht zuerst in Ihrer '.env' Datei nach Ihrer' DB_CONNECTION' und wenn diese nicht existiert, wird sie die 'sqlite' Definition verwenden, die Sie festgelegt haben. – James

+0

So sieht meine .env-Datei aus, sollte ich da etwas ändern? http://puu.sh/onGHZ/a5bca3bcac.png –

Antwort

1

Platzieren Sie Ihre Datenbank im Speicherordner und erwähnen Sie den Pfad in der Datenbank. Auch Sie sollten den PHP-Treiber installiert haben.

Tun Sie dies in der app/config/database.php:

<?php 
return array(
'default' => 'sqlite', 
'connections' => array(
    'sqlite' => array(
     'driver' => 'sqlite', 
     'database' => __DIR__.'/../database/production.sqlite', 
     'prefix' => '', 
    ), 
), 
); 
?> 
0

Sie haben, geben Sie Ihre DB_CONNECTION in Ihrem .env Datei als mysql.

Die Linie 'default' => env('DB_CONNECTION', 'sqlite'), im Grunde sagt, schau zuerst in meiner .env Datei; Wenn eine Einstellung für DB_CONNECTION eingestellt ist, dann verwenden Sie diese, wenn nicht, dann verwenden Sie sqlite.

Es ist eine einfache Lösung, ändern Sie einfach den DB_CONNECTION Konfig-Wert auf sqlite statt mysql.

Verwandte Themen