Laravel恢复破坏不起作用

时间:2015-10-16 12:54:14

标签: php laravel eloquent

恢复功能看起来正在运行,直到它在数据库中保存其状态。我有这段代码:

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上。

1 个答案:

答案 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的后续版本仍然存在这个问题。