2015-10-16 152 views
1

恢復功能看起來像它正在處理,直到它將其狀態保存在數據庫中。我有這樣的代碼:Laravel恢復丟失不起作用

if($result->trashed()) { 
    Log::info($result->deleted_at); 

    $result->restore(); 

    Log::info($result->deleted_at); 
} 

$result->award_id = 1; 
$result->save(); 

Log::info($result->deleted_at); 

的(1)調試顯示代碼的工作應該如何像這樣:

2015-09-22 
null 
null 

然而,在數據庫中的記錄仍然顯示在deleted_at列的日期。

我在Laravel 4.2。

+0

檢查'deleted_at'列有一個'不NULL'標誌數據庫中的表 –

+0

的deleted_at列允許NULL – ryrobbo

+0

你可以嘗試登錄的恢復和保存操作,看看是否有返回false –

回答

1

事實證明,這是Laravel 4.2非常重大的錯誤按照我自己在Github上提出了這個問題:

https://github.com/laravel/framework/issues/10630#issuecomment-148739682

不幸的是,4.2不再支持,所以我不得不更換恢復()方法與:

UserClass::where('user_id', '=', $user->id) 
       ->where('class_id', '=', $class_id) 
       ->withTrashed() 
       ->update([ 
         'deleted_at' => null 
       ]); 

據我所知,這仍然是一個問題與更高版本的Laravel。如果