Php 物理删除在laravel5中启用softdelete的模型?

Php 物理删除在laravel5中启用softdelete的模型?,php,mysql,laravel,laravel-5,soft-delete,Php,Mysql,Laravel,Laravel 5,Soft Delete,我正在对Laravel5中的模型使用SoftDeletes 但在某些情况下(保留历史记录没有用处),我希望执行物理删除(从表中删除行),而不是softDelete class PaymentInvoices extends Model { use SoftDeletes; } 是否有强制物理删除的方法 当然有。使用forceDelete方法,而不仅仅是delete class PaymentInvoices extends Model { use SoftD

我正在对Laravel5中的模型使用
SoftDeletes

但在某些情况下(保留历史记录没有用处),我希望执行物理删除(从表中删除行),而不是
softDelete

    class PaymentInvoices extends Model {

    use SoftDeletes;
}

是否有强制物理删除的方法

当然有。使用
forceDelete
方法,而不仅仅是
delete

    class PaymentInvoices extends Model {

    use SoftDeletes;
}
请记住,
forceDelete
仅在使用
SoftDeletes
特性时可用

范例

$instance->delete() //This is a soft delete
$instance->forceDelete() // This is a 'hard' delete

更多信息(向下滚动至永久删除模型)

作为备用,始终存在
DB::raw
delete()
仅将
deleted\u at
字段更新为删除时间。因此,在通过Laravel(雄辩的API)进行的后续检索中,该记录被忽略。但是,如果您使用原始选择或其他直接数据库访问,令人惊讶的是,它就在那里。当然,它就在那里,Laravel只返回所有在处被删除的记录,这些记录等于
NULL
。没有奇迹发生:)检查雄辩的建设者如何工作感谢@Harry Geo的澄清和参考。我只是打个比方,指出了在表上使用混合访问(包括原始查询(不使用雄辩的模型))的陷阱,而没有过滤出字段值为non-NULL
deleted_的记录,这将返回所有记录,包括软删除的记录。