软删除-j9九游
软删除
版本 | 调整功能 |
---|---|
5.0.2 |
deletetime 属性改为非静态定义 |
在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
要使用软删除功能,需要引入softdelete
trait,例如user
模型按照下面的定义就可以使用软删除功能:
namespace app\index\model;
use think\model;
use traits\model\softdelete;
class user extends model
{
use softdelete;
protected $deletetime = 'delete_time';
}
5.0.2
版本之前deletetime
属性必须使用static
定义。
deletetime
属性用于定义你的软删除标记字段,thinkphp5
的软删除功能使用时间戳类型(数据表默认值为null
),用于记录数据的删除时间。
可以用类型转换指定软删除字段的类型,建议数据表的所有时间字段统一一种类型。
定义好模型后,我们就可以使用:
// 软删除
user::destroy(1);
// 真实删除
user::destroy(1,true);
$user = user::get(1);
// 软删除
$user->delete();
// 真实删除
$user->delete(true);
默认情况下查询的数据不包含软删除数据,如果需要包含软删除的数据,可以使用下面的方式查询:
user::withtrashed()->find();
user::withtrashed()->select();
如果仅仅需要查询软删除的数据,可以使用:
user::onlytrashed()->find();
user::onlytrashed()->select();
如果你的模型定义了
base
基础查询,请确保添加软删除的基础查询条件。
文档最后更新时间:2018-04-26 10:06:47
未解决你的问题?请到「问答社区」反馈你遇到的问题