Увійти Реєстрація
Вакансії
Вакансії Laravel Компанії Статистика
Підготовка
Як підготуватися < href="https://laravelukraine.com/interviews" wire:navigate.hover class="flex items-center gap-3 rounded-md px-3 py-2 text-base font-medium text-gray-600 hover:bg-gray-50 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-900 dark:hover:text-white" >Співбесіди Тестування Документація
Блог
Всі статті Серії
Екосистема
Пакети Ресурси Проєкти Інструменти Події Відео
Інше
Про нас Реклама
Tips 04 листопада 2026

regex - валідація за шаблоном

Потрібна кастомна перевірка формату?

regex використовує регулярні вирази.

Типові кейси:

  • Телефони
  • Поштові індекси
  • Алфавітно-цифрові коди
  • Власні формати

Безпека:

Екрануйте/обережно формуйте патерни, якщо туди потрапляє ввід користувача.

Порада: для повторюваних патернів краще зробити кастомне правило.

public function rules()
{
  return [
    'phone' => ['required', 'regex:/^[0-9]{10}$/'],
    'slug' => [
      'required',
      'regex:/^[a-z0-9]+(?:-[a-z0-9]+)*$/',
    ],
    // складніший патерн краще винести в кастомне правило
    'password' => ['required', new StrongPassword],
  ];
}

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Інші поради

Tips 13 листопада 2026

current_password - перевірка перед змінами

Змінюєте пароль або email? Спочатку перевірте поточний пароль.

current_password робить перевірку автоматично.

Безпека:

захищає від несанкціонованих змін.

Коли корисно:

  • Зміна пароля
  • Зміна email
  • Видалення акаунта
  • Чутливі налаштування

Порада: використовуйте разом з confirmed для нового пароля.

public function rules()
{
  return [
    'current_password' => 'required|current_password',
    'new_password' => [
      'required', 'confirmed',
      'different:current_password',
    ],
    'email' => 'sometimes|required|email|unique:users',
  ];
}
Tips 11 листопада 2026

starts_with і ends_with - перевірка префікса/суфікса

Поле має починатися або закінчуватися певним значенням?

starts_with і ends_with валідуюють “афікси”.

Коли корисно:

  • URL/протоколи
  • Домени email
  • Назви файлів/розширення
  • Формати кодів

Кілька значень:

список через кому.

Порада: для складніших кейсів — regex.

public function rules()
{
  return [
    'website' => 'required|url|starts_with:https://,http://',
    'email' => 'required|email|ends_with:@company.com',
    'filename' => 'required|string|ends_with:.jpg,.png,.gif',
    'api_key' => 'required|string|starts_with:sk_live_,sk_test_',
  ];
}
Tips 09 листопада 2026

size - розмір для рядків, файлів, чисел і масивів

Одне правило — різні типи.

size працює по-різному залежно від типу:

  • Рядки: кількість символів
  • Числа: точне значення
  • Файли: кілобайти
  • Масиви: кількість елементів

Порада: для діапазонів частіше підходять min/max або between.

public function rules()
{
  return [
    'code' => 'required|string|size:10',
    'amount' => 'required|numeric|size:100',
    'document' => 'required|file|size:5120', // 5MB у KB
    'tags' => 'required|array|size:3',
  ];
}
Tips 06 листопада 2026

array - валідація вкладених даних

Валідуєте масиви та вкладені структури?

Dot-нотація робить це просто.

Синтаксис:

  • field.* — кожен елемент масиву
  • field.*.key — вкладений ключ у кожному елементі
  • field.key — конкретний ключ

Коли корисно:

  • Bulk-операції
  • Масиви полів у формах
  • API payload

Порада: комбінуйте з distinct, unique, exists.

public function rules()
{
  return [
    'users' => 'required|array',
    'users.*.name' => 'required|string|max:255',
    'users.*.email' => 'required|email|distinct',

    'items' => 'required|array',
    'items.*.product_id' => 'required|exists:products,id',
    'items.*.quantity' => 'required|integer|min:1',
  ];
}
Tips 02 листопада 2026

in та not_in - whitelist/blacklist валідація

Поле має бути одним із дозволених значень?

in — whitelist, not_in — blacklist.

Коли корисно:

  • Статуси, ролі
  • Передвизначені опції
  • Перевірка значень з конфігів/БД

Кращий варіант:

PHP 8.1 Enum + enum rule.

Порада: Rule::in() зручно для динамічних масивів.

use Illuminate\Validation\Rule;

public function rules()
{
  $roles = ['user', 'admin', 'moderator'];

  return [
    'status' => 'required|in:pending,approved,rejected',
    'role' => ['required', Rule::in($roles)],
    'username' => [
      'required',
      Rule::notIn(['admin', 'root', 'system']),
    ],
  ];
}
Завантаження...