【问题标题】:How to use OR on Laravel Collection如何在 Laravel Collection 上使用 OR
【发布时间】:2020-04-15 16:14:38
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: laravel


【解决方案1】:

你可以使用whereIn():

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

filter():

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

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

【讨论】:

    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2018-11-17
    • 2016-03-15
    • 1970-01-01
    • 2013-06-04
    相关资源
    最近更新 更多