Есть ли способ передать кратные условия в коллекцию Laravel? Я имею в виду что-то вроде:
$filters = [['col1', '=', 'val1'], ['col2', '=', 'val2']];
$found = $collection->where($filters)->first();
Я знаю, что это работает с конструктором красноречивых запросов, но не совсем с коллекциями. Я знаю, что могу связать несколько операторов ->where
(даже в цикле foreach), но мне нужно иметь оригинальный объект коллекции, и клонирование это работает, но не так быстро.
$localCollectionObject = $localCollection->first(function ($value, $key) use ($remoteCollectionObject, $compareColumnNames) {
foreach ($compareColumnNames as $compareColumnName) {
if ($value->{$compareColumnName} != $remoteCollectionObject[$compareColumnName]) {
return false;
}
}
return true;
});
Это также отлично работает, но даже медленнее, чем clone $localCollection
.
Или, может быть, я могу как-то "сбросить", где заявления?
Я ищу его в цикле foreach с другими условиями, и это проблема.