gpt4 book ai didi

php - 如何检测模型事件中的强制删除

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:09 25 4
gpt4 key购买 nike

我已经设置了一个模型事件来检查图像何时被删除并删除相关的 image_size 模型条目。然而,图像使用软删除,所以如果它被软删除,那么我想软删除 image_size 记录,但如果使用 forceDelete 硬删除图像,那么我想硬删除 image_size 记录。有没有办法检测它是什么类型的删除并采取相应的行动。到目前为止,这是我的图像模型中的内容:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

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('App\Image_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
}
});

不过我想我上次这样做是在几个版本之前,所以不确定它是否仍然有效。

关于php - 如何检测模型事件中的强制删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com