Команда Laravel представила версію v11.40, яка включає новий гнучкий клас валідації дат, очікувані атрибути Eloquent, утиліти для виводу в HTTP Response об'єктах та інші вдосконалення.
Michael Nabil запропонував нове, налаштовуване правило валідації Date у Pull Request #53465:
Правило Date спрощує валідацію дат, пропонуючи ланцюгові методи для визначення складних вимог безпосередньо у визначенні правила. Це вдосконалення включає методи для вказування формату дат, забезпечення того, що дати передують або настають після конкретних дат (включаючи "сьогодні"), а також перевірки на відповідність вказаним обмеженням.
Правило Date забезпечує стандартні налаштування для базової валідації дат, а також методи для створення складніших вимог, наприклад, визначення кінцевої дати, що порівнюється з початковою:
use Illuminate\Validation\Rules\Date;
public function rules()
{
return [
'start_date' => [
'required',
new Date, // Стандартна валідація дати
],
'end_date' => [
'required',
(new Date)->after('start_date')->before('2025-01-01'), // Кінцева дата повинна бути після початкової та до 2025-01-01
],
'birth_date' => [
'required',
(new Date)->format('d/m/Y')->beforeToday(), // Перевірка, чи дата народження передує сьогоднішній в форматі 'd/m/Y'
],
];
}
Доступні методи
format($format): Визначає формат дати для валідації. За замовчуванням використовується 'Y-m-d'.afterToday(): Перевіряє, що дата після сьогоднішньої.beforeToday(): Перевіряє, що дата передує сьогоднішній.after($date): Перевіряє, що дата після зазначеної.afterOrEqual($date): Перевіряє, що дата на або після зазначеної.before($date): Перевіряє, що дата передує зазначеній.beforeOrEqual($date): Перевіряє, що дата на або перед зазначеною.between($from, $to): Перевіряє, що дата в межах двох дат.betweenOrEqual($from, $to): Перевіряє, що дата в межах або дорівнює двом датам.Зверніть увагу: на момент написання існує виправлення, яке ще не було випущено стосовно цієї функції. Оскільки це нова функція, вона не порушує існуючі додатки, і сподіваємось, буде вирішена найближчим часом.
Додаткову інформацію можна знайти у Pull Request #53465.
Craig Morris додав нові утиліти для об'єкта Response, який повертає HTTP-клієнт. Ці сигнатури відповідають класу TestResponse, якщо ви з ним уже знайомі:
Http::get($url)->dump($key = null);
Http::get($url)->dd($key = null);
Http::get($url)->dumpHeaders();
Http::get($url)->ddHeaders();
@tontonsb додав очікувані атрибути Eloquent, використовуючи метод withAttributes():
Використання
->withAttributes(['key' => 'value'])вказує екземпляру Builder, що вказані атрибути повинні бути додані до нових екземплярів моделі, якщо ви створюєте модель і використовуєте їх як умовиwhereпри виборі.
// в реляції на моделі User
public function hiddenPosts(): HasMany
{
return $this->posts()->withAttributes('hidden', 'y');
}
// в скоупі на моделі Post
public function scopeHidden(Builder $posts)
{
$posts->withAttributes('hidden', 'y');
}
Деталі реалізації та обговорення цієї функції можна знайти у Pull Request #53720.
Повний список нових функцій та оновлень доступний нижче, а також зміни між 11.39.0 та 11.40.0 на GitHub. Примітки про версію взяті безпосередньо з change log:
schedule:test для команд, які використовують runInBackground від @dallyger в https://github.com/laravel/framework/pull/54321/tests від @browner12 в https://github.com/laravel/framework/pull/54325whereMorphedTo / whereNotMorphedTo від @gdebrauwer в https://github.com/laravel/framework/pull/54324Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!