Laravel покращує валідацію колекцій, додаючи підтримку замикань до методу containsOneItem(). Це дозволяє розробникам перевіряти, що саме один елемент задовольняє заданим умовам, замість простого перевіряння кількості елементів у колекції
Раніше метод containsOneItem() лише з’ясовував, чи містить колекція точно один елемент. Оновлений метод тепер приймає замикання, що дозволяє точно валідувати наявність одного елемента, який відповідає конкретним критеріям:
$collection = collect([1, 2, 3]);
$collection->containsOneItem(fn($item) => $item === 2); // true
$collection->containsOneItem(fn($item) => $item > 1); // false (2 і 3 відповідають)
Це покращення особливо корисне у сценаріях валідації бізнес-правил:
class BusinessRuleValidator
{
public function validateTeamStructure(Collection $members)
{
// Перевірка наявності одного лідера команди
if (!$members->containsOneItem(fn($member) => $member->role === 'lead')) {
throw new ValidationException('Потрібен точно один лідер команди');
}
// Перевірка наявності одного уповноваженого на бюджет
if (!$members->containsOneItem(fn($member) => $member->can_approve_budget)) {
throw new ValidationException('Потрібен точно один уповноважений на бюджет');
}
return true;
}
public function validateInvoiceItems(Collection $items)
{
$validations = [
'handling' => $items->containsOneItem(fn($item) => $item->type === 'handling'),
'processing' => $items->containsOneItem(fn($item) => $item->type === 'processing'),
'delivery' => $items->containsOneItem(fn($item) => $item->type === 'delivery')
];
foreach ($validations as $type => $isValid) {
if (!$isValid) {
throw new ValidationException("Потрібно точно одне {$type} збори");
}
}
return $items;
}
}
Оновлений метод containsOneItem() забезпечує точну валідацію колекцій, гарантуючи, що лише один елемент відповідає визначеним умовам. Це робить дотримання бізнес-правил більш надійним і зрозумілим
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту