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

Php 如何编写正确的查询以获取未删除的行?,php,laravel,eloquent,Php,Laravel,Eloquent,我有用户表,我在表中使用softDeletes()。此外,我还有候选者表,其中有用户表的外键(用户id) 一般来说,我如何才能获得未删除用户的候选人 下面是我的“获取未删除用户的候选人”代码: $candidates = Candidate::all(); $activeCandidates = []; foreach ($candidates as $candidate) { if($candidate->user) { $activeCandidates[] =

我有
用户
表,我在表中使用
softDeletes()
。此外,我还有
候选者
表,其中有
用户
表的外键(
用户id

一般来说,我如何才能获得未删除用户的候选人

下面是我的“获取未删除用户的候选人”代码:

$candidates = Candidate::all();
$activeCandidates = [];
foreach ($candidates as $candidate) {
    if($candidate->user) {
        $activeCandidates[] = $candidate;
    }
}
不使用子查询循环就可以解决我的问题吗?

has()
是基于关系筛选选择模型。所以,它的行为非常类似于正常的WHERE条件。如果您只使用
has('relation')
,这意味着您只想获得在该关系中至少有一个相关模型的模型

$candidates = Candidate::has('user')->get();
has()
是根据关系过滤选择的模型。所以,它的行为非常类似于正常的WHERE条件。如果您只使用
has('relation')
,这意味着您只想获得在该关系中至少有一个相关模型的模型

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