覆盖模型的软删除表列

hdi*_*fen 4 php mysql laravel

我正在使用 Laravel 5.4。

我有一个模型指向具有以下属性的数据库表。

id       integer
name     varchar
location varchar
deleted  boolean
Run Code Online (Sandbox Code Playgroud)

这是一张旧表,由于它与一堆代码纠缠在一起,我们无法更改此表。

我想要做的是利用模型中的 laravel 软删除功能。我知道 laravel 期望列名deleted_at和数据类型date在数据库表上。

我如何覆盖它以便 Laravel 会查看该列deleted并检查它是否为boolean?

我已经尝试查看我的模型继承的类,但无法找到定义处理它的常量和函数的位置。我怀疑它可能在收藏中,但没有运气。

理想情况下,我想简单地重新定义模型中的函数。

谢谢。

Ale*_*nin 5

查看模型中的Illuminate\Database\Eloquent\SoftDeletes特征和覆盖runSoftDelete()以及getDeletedAtColumn方法。

runSoftDelete()使用boolean的,而不是时间戳和getDeletedAtColumn()使用DELETED,而不是DELETED_AT

另一种解决方案是添加全局范围局部范围以处理软删除数据。