【发布时间】:2016-07-09 19:16:18
【问题描述】:
我当前的模型有一些关系。如果模型将被删除,我该如何删除它们? 此查询不会删除相关模型,只会删除“主模型”。
我用这段代码调用:
$checks = Check::where('created_at','<=', Carbon::now()
->subHours(3))
->with('checks')
->with('results')
->delete();
这是我目前的 Check 模型
protected static function boot(){
parent::boot();
static::deleting(function($check) {
$check->checks()->delete();
$check->results()->delete();
});
}
每项检查的结果和检查包含多个条目。意思是说清楚:
一张支票可能有 n 个CheckResult,也可能有 n 个CheckProcedure(我当然也会全部删除)。
【问题讨论】:
-
您在查询构建器而不是模型上调用
delete。如果要触发模型事件,则必须在模型上调用它。如果您只是在数据库上执行删除语句,也不确定急切加载的用途。
标签: php model laravel-5.2 relationship cascading-deletes