Thinkphp 6.0模型的软删除

本节课我们来学习数据库中模型使用软删除的方法。
一.模型软删除
1. 介于数据库软删除没有太多的可操作的方法,官方手册推荐使用模型软操作;
2. 首先,需要在模型端设置软删除的功能,引入 SoftDelete,它是 trait;

use SoftDelete;
protected $deleteTime = 'delete_time';


3. delete_time 默认我们设置的是 null,如果你想更改这个默认值,可以设置:

//protected $defaultSoftDelete = 0;


4. 软删除和方法如下,包括 destroy()和 delete():

UserModel::destroy(289);
UserModel::find(287)->delete();


5. 默认情况下,开启了软删除功能的查询,模型会自动屏蔽被软删除的数据;

$user = UserModel::select();
return json($user);


6. 在开启软删除功能的前提下,使用 withTrashed()方法取消屏蔽软删除的数据;

$user = UserModel::withTrashed()->select();
return json($user);


7. 如果只想查询被软删除的数据,使用 onlyTrashed()方法即可;

$user = UserModel::onlyTrashed()->select();
return json($user);


8. 如果想让某一条被软删除的数据恢复到正常数据,可以使用 restore()方法;

$user = UserModel::onlyTrashed()->find();
$user->restore();


9. 如果想让一条软删除的数据真正删除,在恢复正常后,使用 force()和 delete();
 

$user = UserModel::onlyTrashed()->find(193);
$user->restore();
$user->force()->delete(); //或 UserModel::destroy(288, true)

你可能感兴趣的:(php,sql,数据库)