2017-02-10 1 views
1

J'utilise whoops sur mon site, et maintenant j'essaie de le faire fonctionner avec les erreurs PDO, ça marche bien quand il manque une information pour se connecter à la base de données, mais quand vous tapez (par exemple) une table non existante, ne montre pas d'erreurOups pour attraper les erreurs PDO?

j'essayer d'ajouter PrettyPageHandler::addDataTable() à mon erreur handel

db.php

class db { 

    // just some not important code here... 

    // Try to get the result from database. 
    try { 
     $pdo = DB::getInstance()->db->prepare($sql); 
     $pdo->execute($execute); 
     $result = $pdo->fetchAll(PDO::FETCH_ASSOC); 
     // Return Result 
     return $result; 
    } 
    catch(PDOException $e) 
    { 
     PrettyPageHandler::addDataTable(null, $e); 
    } 
} 

index.php

<?php 
if(file_exists("plugins/whoops/autoload.php")) 
{ 
    require_once 'plugins/whoops/autoload.php'; 
    $whoops = new \Whoops\Run; 
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler); 
    $whoops->register(); 
} 

require_once db.php'; 

$db = new db(); 

mais j'obtenir une classe 'PrettyPageHandler' introuvable

+0

Avez-vous inclus/requis le fichier qui contient la classe PrettyPageHandler? – flynorc

+0

Avez-vous 'utiliser Whoops \ Handler \ PrettyPageHandler;' dans votre code? –

+0

@JiriHrazdil 2 sec Je mets à jour le poste –

Répondre

0

Vous devez utiliser nom complet de la classe ou use instruction. Remplacez PrettyPageHandler::addDataTable(null, $e); par \Whoops\Handler\PrettyPageHandler::addDataTable(null, $e);.

+0

Méthode non statique Whoops \ Handler \ PrettyPageHandler :: addDataTable() ne doit pas être appelé statiquement –

+0

J'ai regardé la documentation d'Oups et il semble que vous devriez Appelez plutôt '$ whoops-> handleException ($ e);' dans le bloc catch. –

+0

Variable indéfinie: whoops –