通过两个字段删除相关记录

delete record related through two field

我有两个模型: 模型 1 字段 ID,field_a,field_b

模型 2 id2, field_a, field_b

on $model1->delete() 我也想删除 $model2 其中 field_a 和 field_b 与 $model1 相同(两者)

例子

model1
1, 2, 5

model2
1, 2, 4
2, 3, 5
3, 2, 5 (to be deleted)

我不知道这是否有帮助 Automatically deleting related rows in Laravel (Eloquent ORM)

只需查找并删除模型 2 中列值相似的行。

Model2::where('field_a',$model1->field_a)->where('field_b',$model1->field_b)->delete();

$model1->delete();

这里,模型2是第二个模型的class。

在模型 1 上注册删除事件,删除值匹配的模型 2。

model 1中添加以下...

public static function boot()
{
    parent::boot();
    static::deleted(function($model1) {
        Model2::where('field_1', $model1->field_1)->where('field_2', $model1->field_2)->delete()
    });
}

现在,每当您删除模型 1 时,具有匹配属性的模型 2 也会被删除。