php – 如何在模型事件中检测强制删除
发布时间:2020-12-13 17:48:58 所属栏目:PHP教程 来源:网络整理
导读:我已经设置了一个模型事件来检查图像何时被删除并删除相关的image_size模型条目.但是图像使用软删除,所以如果它被软删除,那么我想软删除image_size记录,但如果使用forceDelete硬删除图像,那么我想硬删除image_size记录.有没有办法检测它是什么类型的删除并采
我已经设置了一个模型事件来检查图像何时被删除并删除相关的image_size模型条目.但是图像使用软删除,所以如果它被软删除,那么我想软删除image_size记录,但如果使用forceDelete硬删除图像,那么我想硬删除image_size记录.有没有办法检测它是什么类型的删除并采取相应的行动.这是我目前在我的
Image模型中所拥有的:
<?php namespace App; use IlluminateDatabaseEloquentModel; use IlluminateDatabaseEloquentSoftDeletes; class Image extends Model { use SoftDeletes; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = ['url','thumb_url','filename']; /** * Relationship to image sizes */ public function sizes() { return $this->hasMany('AppImage_size'); } /** * Model events */ protected static function boot() { parent::boot(); static::deleting(function($image) { // before delete() method call this $image->sizes()->delete(); }); } } 解决方法
如果我没记错的话,你在$image对象上有一个名为forceDeleting的属性.
static::deleting(function($image) { if($image->forceDeleting){ //do in case of force delete } else { //do in case of soft delete } }); 但是我认为上次我这样做是在几个版本中,所以不确定它是否仍然有效. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |