IlG*_*ala 2 php soft-delete laravel laravel-5.2
我正在使用Laravel 5.2开发一个Laravel Web应用程序.我的问题很简单......我如何听取forceDelete事件以强制删除模型关系?
我一直在寻找网络和SO以及一些我发现的所有问题/答案都归结为删除方法,而且在API文档中我还没有找到很多...
在我的例子中,我有一个注册表模型和一个RegistryDetail模型
注册表
|id|name|surname|....
Run Code Online (Sandbox Code Playgroud)
RegistryDetail表
|id|id_registry|....
Run Code Online (Sandbox Code Playgroud)
我已经为这个boot功能创建了:
protected static function boot()
{
parent::boot();
static::deleted(function($registry) {
// Delete registry_detail
$registry->registryDetail->delete();
});
static::restored(function($registry) {
// Restore registry_detail
$registry->registrydetail()->withTrashed()->restore();
});
}
Run Code Online (Sandbox Code Playgroud)
由于两个模型都只在调用delete()方法时才调用SoftDeletes该static::deleted函数.如果我调用forceDelete()方法,则不会从数据库中删除相关模型.
如果您需要更多信息,请告诉我.
提前致谢
deleted在打电话时,该事件仍应触发forceDelete().在deleted()事件方法中,您可以检查forceDeleting受保护的属性,isForceDeleting()以查看您是在常规删除还是强制删除.
static::deleted(function($registry) {
// Delete registry_detail
if ($registry->isForceDeleting()) {
$registry->registryDetail->forceDelete();
} else {
$registry->registryDetail->delete();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |