php手记之05-tp5软删除
00-设计数据库的delete_time字段(不能设置为timestamp)
`delete_time` int(10) UNSIGNED DEFAULT NULL
01-需要在设置软删除的模型里设置
定义好模型后,我们就可以使用:
// 软删除 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();
恢复被软删除的数据
$user = User::onlyTrashed()->find(1); $user->restore();
软删除仅对模型的删除方法有效,如果直接使用数据库的删除方法则无效,例如下面的方式无效(将不会执行任何操作)
$user = new User; $user->where('id',1)->delete();