提问者:小点点

如何在Laravel集合上使用OR


我有一个Laravel集合,其中每个元素都有键action,值可以是“手动”、“自动”和其他类型。我尝试获取操作为“手动”或“自动”的所有元素。我尝试了遵循Laravel收集方法,但它没有返回任何内容。

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

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

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

问:如何获取所有元素,其中action是手动或使用?我看到Laravel收集方法,但我没有发现像或在哪里方法。


共1个答案

匿名用户

您可以使用where():

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

或filter():

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

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