如何在Laravel和Eloquent中软删除记录

时间:2018-03-08 19:48:46

标签: laravel laravel-5

我有一个视图,显示从数据库中取出的数据,客户端想要实际删除视图中的一些记录而实际上不得不从数据库中删除记录。我是Laravel的新手可以任何人建议我可能必须采取的方法来实现这个?

1 个答案:

答案 0 :(得分:3)

您想使用soft deletes。这将向您的表中添加deleted_at列,并设置记录被标记为已删除的时间戳,而不实际删除记录。在您的模式中,只需将以下内容添加到您需要软删除的任何表中:

$table->softDeletes();

您的模型还需要使用SoftDeletes特征:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class MyModel extends Model
{
    use SoftDeletes;

    protected $dates = ['deleted_at'];
}

trashed方法将显示记录是否已被删除,withTrashed方法用于返回包含已删除记录的结果。