Метод 1. Использование метода whereс замыканием.
Построитель запросов Laravel предоставляет удобный метод where, который допускает замыкание. Внутри этого замыкания вы можете определить условия, используя методы построителя запросов. Вот пример:
$users = DB::table('users')
->where(function ($query) use ($condition) {
if ($condition) {
$query->where('age', '>', 18);
} else {
$query->where('age', '<', 18);
}
})
->get();
Метод 2: Условные предложения с помощью метода when:
Метод whenпозволяет условно применить обратный вызов к запросу на основе заданного условия. Этот метод обеспечивает более краткий способ добавления условных предложений. Вот пример:
$condition ? $operator = '>' : $operator = '<';
$users = DB::table('users')
->when($condition, function ($query) use ($operator) {
return $query->where('age', $operator, 18);
})
->get();
Метод 3. Динамические имена столбцов с помощью метода orWhere.
Иногда вам может потребоваться добавить условное предложение с динамическим именем столбца. В таких случаях вы можете использовать метод orWhere. Вот пример:
$column = $condition ? 'age' : 'salary';
$users = DB::table('users')
->where('name', 'John')
->orWhere($column, '>', 5000)
->get();
Метод 4: условные предложения с Eloquent ORM:
Если вы используете Eloquent, встроенный ORM Laravel, вы можете использовать его выразительный синтаксис для условных предложений. Вот пример:
$users = User::where('name', 'John');
if ($condition) {
$users->where('age', '>', 18);
} else {
$users->where('age', '<', 18);
}
$users = $users->get();
Добавление условных предложенийwhere в запросы Laravel дает вам возможность получать определенные данные на основе различных условий. В этой статье мы рассмотрели несколько методов, в том числе использование замыканий, метода when, динамических имен столбцов с помощью orWhereи условных предложений с помощью Eloquent ORM. Применяя эти методы, вы сможете писать более универсальные и лаконичные запросы в своих приложениях Laravel.