Laravel 5.4,Eloquent,大量删除redords,其中关系计数为零

时间:2017-07-27 19:40:41

标签: eloquent laravel-5.4 relationships laravel-eloquent

当检索具有关系的模型时,Eloquent可以很容易地这样做:

SortedList

这反过来为我们提供了一个确定关系中记录数量的选项

$model = Model::with('related_model')->where('col_name', 'col_value')->get();

当关系计数为零时,我需要批量删除记录:

$count = count($model->related_model);

普通模型的常规删除如下所示:

Model::with('related_model')->where('col_name', 'col_value')->get();

有没有办法以某种方式实现关系条件,以便只删除计算ZERO关系的模型记录。

的调整
Model::where('col_name', 'col_value')->delete();

或者我是否必须首先检索模型数据然后单独运行删除语句?

谢谢!

1 个答案:

答案 0 :(得分:0)

在做了更多研究之后,我发现Eloquent在Model类上提供了has()方法,解决方案看起来像这样

Model::has('related_model', '=', 0)->where('col_name', 'col_value')->delete();