Laravel Soft删除恢复()错误

时间:2014-08-29 20:47:57

标签: laravel eloquent soft-delete

以下软删除代码适用于我:

$post = Post::find($post_id);
$post->delete();

deleted_at字段已更新。但这给了我一个错误:

$post = Post::find($post_id);
$post->restore();

这是错误:

exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to a member function restore() on a non-object'

我很难过。到目前为止谷歌没有帮助。

2 个答案:

答案 0 :(得分:40)

错误说$post是非对象,Laravel不返回没有withTrashed()

的已删除记录
Post::withTrashed()->find($post_id)->restore();

Laravel Docs - Soft Deleting

  

查询使用软删除的模型时,不会包含“已删除”模型...

答案 1 :(得分:0)

另一种选择是在垃圾模型中搜索特定 ID:

Post::onlyTrashed()->where('id', $post_id)->restore();