Laravel Query Builder: использование метода «когда» для ограничений условных запросов

В Laravel метод «когда» используется для условного применения ограничений запроса к экземпляру построителя запросов. Он позволяет добавлять в запрос дополнительные условия на основе заданного условия. Вот несколько примеров использования метода «когда» с кодом:

Пример 1. Применение условия к запросу

$isAdmin = true; // Assume this is the condition
$query = DB::table('users')
    ->when($isAdmin, function ($query) {
        return $query->where('role', 'admin');
    })
    ->get();

В этом примере, если условие $isAdminистинно, к запросу добавляется предложение where, фильтруя пользователей с ролью «admin». В противном случае дополнительные ограничения не применяются.

Пример 2. Применение нескольких условий

$minAge = 18;
$maxAge = 30;
$query = DB::table('users')
    ->when($minAge, function ($query, $minAge) {
        return $query->where('age', '>=', $minAge);
    })
    ->when($maxAge, function ($query, $maxAge) {
        return $query->where('age', '<=', $maxAge);
    })
    ->get();

В этом примере, если указана переменная $minAge, добавляется предложение whereдля фильтрации пользователей с возрастом, превышающим или равным $. минВозраст. Аналогично, если указана переменная $maxAge, добавляется предложение whereдля фильтрации пользователей с возрастом, меньшим или равным $maxAge..

Это всего лишь пара примеров, иллюстрирующих использование метода «когда» в запросах Laravel. Вы можете использовать его в различных сценариях, чтобы условно применять ограничения запроса в зависимости от ваших конкретных потребностей.