如何在 Laravel Collection 上使用 OR

Dan*_*ish 3 laravel

我有一个 Laravel 集合,其中每个元素都有键action,值可以是“手动”、“自动”和其他类型。我试图获取action“手动”或“自动”的所有元素,我尝试遵循 Laravel 集合方法,但它什么也不返回。

$manualTransactions = $allTransactions
    ->where('action','Manual')
    ->where('action','Used');
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试以下操作,它会返回action“Manual”所在的所有元素,如果我将“Manual”替换为“Used”,它也会返回action“Used”所在的所有元素

$manualTransactions = $allTransactions
    ->where('action','Manual');
Run Code Online (Sandbox Code Playgroud)

问题:如何获取action“手动”或“已使用”的所有元素?我看到了 Laravel 集合方法,但没有找到类似 orWhere 方法。

Rwd*_*Rwd 5

您可以使用whereIn()

$allTransactions->whereIn('action', ['Manual', 'Used']);
Run Code Online (Sandbox Code Playgroud)

过滤器()

$allTransactions->filter(function ($item) {
    return in_array($item->action, ['Manual', 'Used']);
});
Run Code Online (Sandbox Code Playgroud)

上面假设$item是一个对象,$item['action']如果是数组则使用。