Eloquent 如果至少有一个关系,则获取集合

Eloquent Get Collection if it has at least one relation

我有一个场景,我有一个模型 A,它有 3 个关系 B、C 和 D。 我正在尝试在 A 中获取至少有一个关系的集合 所以我不想要 {id:1,B:[],C;[],D:[]} 但我会接受 {id:2,B:[{id:6}],C;[], D:[]} 我试着在 3 个之前得到它们,但只有当它有 3 个时才得到它。 我也尝试通过 if 获取所有内容然后进行检查,但我想要一种更快的方法。

你可以使用 orWhereHas

$collectionA = A::where(function($query) {
        $query->whereHas('B')
            ->orWhereHas('C')
            ->orWhereHas('D');
    })
    ->get();