Метод whereAny
Метод whereAny применяется к запросу Eloquent или Query Builder и позволяет выполнить поиск по нескольким колонкам одновременно. Он принимает массив колонок и условие, и возвращает записи, в которых хотя бы одна из указанных колонок соответствует условию. Это удобно, когда нужно проверить наличие значения в нескольких полях.
Синтаксис
<?php
Model::whereAny($columns, $operator, $value);
?>
Первый параметр - массив колонок, второй - оператор сравнения, третий - значение. Если оператор не указан, используется равенство.
Пример
Давайте найдем статьи, у которых поле 'title' или поле 'description' содержат слово 'laravel':
<?php
use AppModelsArticle;
$res = Article::whereAny(['title', 'description'], 'LIKE', '%laravel%')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["Laravel tips", "Laravel for beginners"]
Пример
Давайте найдем пользователей, у которых 'name' или 'email' равны 'John':
<?php
use AppModelsUser;
$res = User::whereAny(['name', 'email'], 'John')->get();
foreach ($res as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
["John", "John Doe"]
Пример
Давайте найдем продукты с ценой больше 100 в колонке 'price' или 'old_price':
<?php
use AppModelsProduct;
$res = Product::whereAny(['price', 'old_price'], '>', 100)->get();
foreach ($res as $product) {
echo $product->name;
}
?>
Результат выполнения кода:
["Laptop", "Smartphone", "Tablet"]