如何编写正确的查询以获取未删除的行?

时间:2019-03-23 11:15:12

标签: php laravel eloquent

我有users表,并且在表中使用softDeletes()。我也有candidates表,其中有到user_id表的外键(users)。

一般如何获取未删除用户的候选人?

这里是我的代码,用于获取未删除用户的候选人:

$candidates = Candidate::all();
$activeCandidates = [];
foreach ($candidates as $candidate) {
    if($candidate->user) {
        $activeCandidates[] = $candidate;
    }
}

可以解决我的问题而无需循环子查询吗?

1 个答案:

答案 0 :(得分:2)

has()用于基于关系过滤选择模型。因此,它的行为与正常WHERE条件非常相似。如果仅使用has('relation'),则意味着您只想获取在该关系中至少具有一个相关模型的模型。

$candidates = Candidate::has('user')->get();