2016-05-01 3 views
0

Ich entwickle eine Anwendung im Slim-Framework unter Verwendung der Illuminate-Bibliothek. Ich versuche mit Illuminate \ Database \ Capsule \ Manager eine Verbindung zur Datenbank herzustellen. Einige wie, erkennt es die 'addConnection' Anweisung nicht. Hier ist mein vollständiger Code. Wenn jemand darauf hinweisen kann, wo ich falsch liege, wäre das sehr hilfreich.Illuminate Bibliothekskapselobjekt, das den Befehl 'addConnection' nicht akzeptiert

require 'lib/vendor/PHPMailer/PHPMailerAutoload.php'; 
require 'lib/init.php'; 
require 'lib/Slim/Slim.php'; 

date_default_timezone_set('UTC'); 

use lib\Slim\Middleware\SessionCookie; 

\Slim\Slim::registerAutoloader(); 


use Illuminate\Database\Capsule\Manager as Capsule; 

$capsule = new Capsule; 


$capsule->addConnection(array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => 'mydatabase', 
    'username' => 'myusername', 
    'password' => 'mypassword', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
)); 

use Illuminate\Events\Dispatcher; 
use Illuminate\Container\Container; 
$capsule->setEventDispatcher(new Dispatcher(new Container)); 

// Make this Capsule instance available globally via static methods... (optional) 
$capsule->setAsGlobal(); 

// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) 
$capsule->bootEloquent(); 

$app->run(); 

Hier stoppt das Skript und die Anwendung geht in den Status "nicht reagiert".

$capsule->addConnection(array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'mydatabase', 'username' => 'myusername', 'password' => 'mypassword', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ));

Ich habe meine Datenbankdetails immer wieder überprüft und sie sind zu 100% korrekt. Kann jemand darauf hinweisen, was das verursachen könnte?

UPDATE:

Nach dem Test Ich bin gekommen, zu erkennen, dass die Seite Fehler http 500 auf jede falsche Aussage gibt. Wenn ich zum Beispiel vergesse, ein Semikolon am Ende der Anweisung zu setzen, geht es in 500. Dies deutet darauf hin, dass der Fehler möglicherweise etwas anderes als SQL ist. Gibt es eine Möglichkeit, das Debuggen zu aktivieren, so zeigt es mir die Ursache des Fehlers. Ich könnte es von dort aus aufspüren?

UPDATE

ich Debugging aktiviert haben. Es gibt mir den folgenden Fehler:

Call to undefined function Illuminate\Support\value()

+0

Nun definiert wird, scheint Sie ‚Wert()‘ Funktion aufrufen, aber es gar nicht existiert? Komische Sache. Vielleicht sind Sie einschließlich Beleuchtung Unterstützung manuell und Hilfsdatei ist nicht auto_included? Versuchen Sie, diese Datei zu Composer Autoload-Dateien Liste hinzufügen – huglester

Antwort

1

"geht in 'reagiert nicht' Zustand." das scheint mehr wie "nicht reagiert" von MySQL-Server. Ich würde für einen ungültigen Hostnamen stimmen. Versuchen Sie, localhost mit 127.0.0.1 zu ändern. Auch (wenn unterstützt) ist es besser, mysqli (anstelle von mysql driver) zu verwenden.

Wenn es für ~ 30-60 Sekunden einfriert, ist es Timeout-Einstellungen, bevor Sie einen Timeout-Fehler erhalten. Hast du welche?

Auch für ‚frische‘ Beispiele für Eloquent Nutzung, können Sie hier finden: https://github.com/mattstauffer/Torch (wenn Sie Laravel verwenden 4.2 Sie sollten Zweig 4.2 für ältere Beispiele wechseln)

+0

Nach dem Testen habe ich festgestellt, dass die Seite http 500 bei jeder falschen Aussage gibt Fehler. Wenn ich zum Beispiel vergesse, ein Semikolon am Ende der Anweisung zu setzen, geht es in 500. Dies deutet darauf hin, dass der Fehler möglicherweise etwas anderes als SQL ist. Gibt es eine Möglichkeit, das Debuggen zu aktivieren, so zeigt es mir die Ursache des Fehlers. Ich könnte es von dort aus aufspüren? – Daniel

+0

Möchten Sie sich bitte das zweite Update ansehen? – Daniel

+0

Über Debugging. Ich habe einige Probleme (um ehrlich zu sein) mit Nginx. Manchmal zeigt es einfach keinen Fehler. Und ich sehe nur - 500 Fehler. In diesen Situationen navigiere ich einfach zu/var/log/nginx/.. Fehlerprotokoll für diesen vhost und sehe die Protokolle.) Andere Sache ist, dass ich nur tun: tail -f/var/log/nginx/domain.app-errors.log - bei der Entwicklung sehe ich sofort Fehler, wenn sie auftauchen! – huglester

0

Wahrscheinlich Sie Illuminate enthalten fehlen \ Support \ helpers.php, wo die Funktion Wert() als dieser

if (! function_exists('value')) { 
    /** 
    * Return the default value of the given value. 
    * 
    * @param mixed $value 
    * @return mixed 
    */ 
    function value($value) 
    { 
     return $value instanceof Closure ? $value() : $value; 
    } 
} 
Verwandte Themen