PHP数据库操作(硬删除与软删除)

一、硬删除

什么是硬删除?硬删除就是直接从表中把记录移除了,这是一个硬删除(物理删除)操作,硬删除会直接删除表中的记录,在需要找回数据的时候很麻烦,不推荐使用。

public function delBanner() {  
 	$id = Request::delete('ids');  
 	array_map(function ($id) {  
 	// 查询指定id的轮播图记录  
 	$banner = BannerModel::get($id,'items');  
 	// 指定id的轮播图不存在则抛异常  
 	if (!$banner) throw new BannerException([
		'msg' => 'id为' . $id . '的轮播图不存在'
	]);  
 	// 执行关联删除  
 	$banner->together('items')->delete();  
 	}, $ids);  
 	return writeJson(201, [], '轮播图删除成功!');  
}

二、软删除

软删除不会从表中真正的删除记录,而是通过标识使得这条记录在系统逻辑层面上不可见
(关联的数据模型上同样引入SoftDelete的命名空间即可)

// 引入SoftDelete的命名空间
use think\model\concern\SoftDelete;  
  
class Banner extends Model  
{  
 	use SoftDelete;  
 	protected $hidden = ['delete_time','update_time'];  
  
 	// 方法名可以自定义,通过在模型类里面定义一个方法,声明关联关系,这个方法返回被关联模型的实例  
 	public function items()  
 	{ // 调用了模型实例的hasMany()方法,这个方法定义了当前模型与被关联模型BannerItem是一种一对多的关系  
 	// 关联的内容是BannerItem模型里banner_id属性的值与当前模型的id属性的值一致的记录。  
 	return $this->hasMany('BannerItem','banner_id', 'id');  
 	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值