2015-04-20 10 views
16

Normalmente quando chiamo Model->save(), crea correttamente il nuovo record nel database. Sto cercando di eseguire il debug di una situazione quando non succede nulla e Model->save() restituisce false. Come faccio a sapere cosa sta succedendo?Modello Laravel-> save() restituisce false ma nessun errore

$user = new User; 
$user->fields = 'example'; 
$user->save(); // returns false 

In esecuzione non vengono visualizzate query di inserimento.

dd(DB::getQueryLog()); 

Ma se io var_dump($user), ho correttamente ottenere tutti i campi a salvati nell'oggetto.

Grazie!

+1

'evento :: ascoltare ('illuminate.query', function ($ query, $ attacchi, $ time) { \t error_log ($ query); }); 'prova a controllare la query. – Dhiraj

+0

Vuoi dire quando l'errore di aggiornamento? –

risposta

39

Per ottenere le query di inserimento quando $user->save(); errore, si può provare a intercettare l'eccezione in questo modo:

try{ 
     $user = new User; 
     $user->fields = 'example'; 
     $user->save(); // returns false 
    } 
    catch(\Exception $e){ 
     // do task when error 
     echo $e->getMessage(); // insert query 
    } 

Spero che questo aiuti :)

+2

Dovrebbe essere davvero '(\ Exception $ e)' perché altrimenti penserebbe che stai cercando la classe Exception in questo spazio dei nomi. (A meno che non si scriva "use Exeption") –

+0

grazie per i promemoria :) –

-2

Se si desidera solo fuggire senza sapere cosa sta succedendo si può provare questo,

$user = new User; 
    $user->fields = 'example'; 
    if($user->save()){ 
     return true; 
    } 
    else{ 
     // returns false 
     //do something 
    } 
+1

Questo non indica quali sono stati gli errori, che è quello che l'OP chiedeva. –

+0

Risposta irrilevante –

Problemi correlati