43

以下软删除代码对我来说很好用:

$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'

我难住了。到目前为止,谷歌没有帮助。

4

2 回答 2

89

错误说$post是非对象,Laravel 不会返回已删除的记录withTrashed()

Post::withTrashed()->find($post_id)->restore();

Laravel Docs - 软删除

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

于 2014-08-29T20:52:09.797 回答
1

另一种选择是在已删除的模型中搜索特定 ID:

Post::onlyTrashed()->where('id', $post_id)->restore();
于 2021-01-30T20:07:32.577 回答