恢复功能看起来正在运行,直到它在数据库中保存其状态。我有这段代码:
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);
调试显示代码如何工作:
2015-09-22
null
null
但是,数据库中的记录仍在deleted_at列中显示日期。
我在Laravel 4.2上。
答案 0 :(得分:1)
事实证明,根据我自己在Github提出的问题,这是Laravel 4.2的一个相当大的错误:
https://github.com/laravel/framework/issues/10630#issuecomment-148739682
不幸的是,不再支持4.2,所以我不得不用以下代码替换restore()方法。
UserClass::where('user_id', '=', $user->id)
->where('class_id', '=', $class_id)
->withTrashed()
->update([
'deleted_at' => null
]);
据我所知,Laravel的后续版本仍然存在这个问题。