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

时间:2016-05-20 17:18:43

标签: laravel laravel-5 eloquent relationship

我有两个型号: 模型1 field id,field_a,field_b

模型2 id2,field_a,field_b

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

实施例

$('#confirm-delete').on('show.bs.modal', function(e) {
  var deleteid = $(e.relatedTarget).data('delete');
  alert(deleteid);
  $('#delBtn').attr('onClick', "location.href='/supprimer/" + deleteid + "'");
});

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

2 个答案:

答案 0 :(得分:1)

在模型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。

答案 1 :(得分:0)

只需找到并删除model2中列值相似的行。

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

$model1->delete();

此处, Model2 是第二个模型的类。