Допоміжні функції для дат у Laravel 11.42

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 лютого, 2025
Дізнайтеся про нові можливості в Laravel v11.42, включаючи зручні методи для роботи з датами та вдосконалену валідацію чисел. Чи готові ви дізнатися, як ці зміни можуть спростити вашу роботу?

Команда Laravel випустила версію v11.42, що включає нові шорткати для відносних дат, гнучку числову валідацію, JSON-ствердження для потокового контенту та багато іншого

# Шорткати для відносних дат

Jason McCreary додав методи шорткатів для відносних дат у конструктор запитів, що дозволяє обмежувати дати в полях, наприклад, для пошуку записів у минулому, майбутньому, сьогодні, після сьогоднішнього дня тощо:

DB::table('invoices')
    ->wherePast('due_at')
    ->get();
 
DB::table('invoices')
    ->whereFuture('due_at')
    ->get();
 
DB::table('invoices')
    ->whereNowOrPast('due_at')
    ->get();
 
DB::table('invoices')
    ->whereNowOrFuture('due_at')
    ->get();
 
DB::table('invoices')
    ->whereToday('due_at')
    ->get();
 
DB::table('invoices')
    ->whereBeforeToday('due_at')
    ->get();
 
DB::table('invoices')
    ->whereAfterToday('due_at')
    ->get();

Крім вказаних вище методів, також включені варіанти or та not, а також можливість передавати масив назв колонок:

Усі ці методи мають варіанти where, or і orWhereNot. Всі методи також приймають масив назв колонок як перший аргумент. Метод wherePast і whereFuture мають необов'язковий другий аргумент для встановлення $now.

Більш детально про реалізацію можна дізнатися в Pull Request #54408.

# Гнучка числова валідація

Carlos Junior впровадив клас гнучкої числової валідації для зручного визначення правил числової валідації:

// До
$rules = [
    'score' => 'numeric|integer|multiple_of:10|lte:some_field|max:100',
];
 
// Після
$rules = [
    'score' => [
        Rule::numeric()
            ->integer()
            ->multipleOf(10)
            ->lessThanOrEqual('some_field')
            ->max(100),
    ],
];

# Метод "missing" у Context

Vincent Bergeron додав методи missing() та missingHidden() у службу Context, які повертають булеве значення, якщо ключ контексту відсутній:

Context::add('url', $request->url());
Context::addHidden('hidden_url', $request->url());
 
Context::missing('url'); // false
Context::missing('missing_key'); // true
 
Context::missingHidden('url'); // true
Context::missingHidden('hidden_url'); // false

# JSON-ствердження для потокового контенту

Günther Debrauwer додав можливість використовувати JSON-ствердження для потокових JSON-відповідей:

Route::get('/users', function () {
    return response()->streamJson([
        'data' => User::cursor(),
    ]);
});
 
$this->getJson('/users')
    ->assertJsonCount(10, 'data')
    ->assertJsonPath('data.*.id', $users->pluck('id')->all());

# Примітки до випуску

Повний список нових функцій та оновлень можна переглянути нижче, також доступний порівняльний аналіз між 11.41.0 та 11.42.0 на GitHub. Нижче наведено примітки до випуску, що безпосередньо взяті з чейнджлогів:

# v11.42.0

Популярні

Logomark Logotype

Усе, що нам відомо про Livewire 4

Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Інтеграція Laravel Socialite з бібліотекою Google Client PHP

Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті