软删除
namespace app\model;
use think\Model;
use think\model\concern\SoftDelete;
class User extends Model
{
// 开启软删除
use SoftDelete;
// 软删除 给数据标记已删除 但不是真的删除 会存在数据库中 但是不会被查询出来
// deleteTime 绑定表里自定义的时间字段名 delete_time
// protected $defaultSoftDelete = 0; 软删除的默认值
protected $deleteTime = 'delete_time';
// 初始化模型的一些操作
public static function init()
{
// echo 'init2222';
}
}
使用的地方 控制器里
$user = new User();
// 删除id为3的数据 删除多条[1,2,3,4]
// $user->destroy([1,2,3,4]);
// 真实删除
// $user->destroy(1,true);
// 软删除
// $user->delete();
// 真实删除
// $user->force()->delete();
// 查询包括软删除的数据
// echo $user->withTrashed()->select();
// 只查询软删除的数据
// echo $user->onlyTrashed()->select();
// 恢复单个软删除的数据
// $user = User::onlyTrashed()->find(1);
// $user->restore();
// 恢复所有软删除的数据
// $user = User::onlyTrashed()->select();
// foreach ($user as $user) {
// $user->restore();
// }
// echo $user->select();
// 软删除后 需要真删除数据 先恢复 再删除
事件
// 回调事件
// 命名规则 onAfterRead
// after_read 查询后 onAfterRead
// before_insert 新增前 onBeforeInsert
// after_insert 新增后 onAfterInsert
// before_update 更新前 onBeforeUpdate
// after_update 更新后 onAfterUpdate
// before_write 写入前 onBeforeWrite
// after_write 写入后 onAfterWrite
// before_delete 删除前 onBeforeDelete
// after_delete 删除后 onAfterDelete
// before_restore 恢复前 onBeforeRestore
// after_restore 恢复后 onAfterRestore
public static function onAfterRead($user)
{
echo '执行了' . $user['name'] . '的查询操作';
}