完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了 Laravel 中一些比
完成这样的教程系列并不像看起来那么简单。您想按特定顺序涵盖主题,但每次谈到一个新主题时,您都会意识到您需要涵盖其他内容才能做到这一点。例如,在学习了 Laravel 中一些比较简单的主题之后,我认为我们可以自己解决一些主题,比如路由、模型、控制器等。
我现在有点进退两难。我想介绍的路由系列的最后一个主题是如何包含软删除模型。唯一的问题是,我们还没有介绍如何软删除模型。我们现在覆盖它,然后再覆盖它吗?还是我跳过这篇文章,稍后再回到路线?
软删除模型是什么意思?
通常,当您从数据库中删除记录时,它就是这样做的,它会删除它。当您启用软删除时,该表会获得一个deleted_at
列,该列仅存储删除记录时的时间戳。稍后我们将介绍如何创建这些类型的模型(提示:您在迁移文件中进行)。
如何恢复被软删除的记录?
当你从数据库中返回一个集合时,Laravel 将只返回活跃的记录。这意味着如果记录已被完全删除或软删除,它将不会出现在集合中。但是,如果您希望它也出现在收藏中怎么办?仅当记录已被软删除时才能执行此操作。如果在特定模型上启用了软删除,则可以使用该withTrashed
方法。
use App\Models\User;
Route::get('/users/{user}', function (User $user) {
return $user;
})->withTrashed();
在上面的示例中,我们正在对一个User
实例进行类型提示并搜索用户,即使该用户已被软删除。如果匹配,则返回用户。
我想我们已经尽可能地覆盖了路线。希望我们以后不必再回到他们身边。