2015-04-20 52 views
16

通常當我打電話Model->save(),它成功地在數據庫中創建新記錄。我試圖在沒有任何事情發生時調試情況,並且Model->save()返回false。我如何知道發生了什麼?Laravel型號 - >保存()返回false,但沒有錯誤

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

運行此操作時不顯示任何插入查詢。

dd(DB::getQueryLog()); 

但如果我var_dump($user),我得到正確正確保存在對象中的所有字段。

謝謝!

+1

'事件::聽( 'illuminate.query',函數($查詢,$綁定,$時間){ \t的error_log($查詢); });'嘗試這個來檢查查詢。 – Dhiraj

+0

你的意思是知道什麼時候更新錯誤? –

回答

39

爲了讓插入查詢時$user->save();錯誤,你可以嘗試趕上這樣的例外:

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

希望這有助於:)

+2

它應該是'(\ Exception $ e)',因爲否則它會認爲你正在尋找這個名字空間中的Exception類。 (除非你寫的'使用Exeption') –

+0

感謝提醒:) –

-2

如果你只是想逃避不知道發生了什麼事你可以試試這個,

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

這並沒有告訴什麼錯誤是,這是什麼OP要求。 –

+0

Irelevent答案 –

相關問題