首页 > 解决方案 > 如何在 Laravel Collection 上使用 OR

问题描述

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

$manualTransactions = $allTransactions
    ->where('action','Manual')
    ->where('action','Used');

但是,如果我尝试以下操作,它action也会返回“手动”的所有元素,如果我将“手动”替换为“已使用”,它会返回“action已使用”的所有元素

$manualTransactions = $allTransactions
    ->where('action','Manual');

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

标签: laravel

解决方案


您可以使用whereIn()

$allTransactions->whereIn('action', ['Manual', 'Used']);

过滤器()

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

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


推荐阅读