Освоение проверки Laravel: обработка ввода электронной почты или номера телефона

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

  1. Использование правила «регулярного выражения».
    Один из способов проверить входные данные, которые могут быть адресом электронной почты или номером телефона, — использовать правило «регулярного выражения». Правило «регулярного выражения» позволяет вам определить шаблон регулярного выражения, который будет соответствовать входным данным. Вот пример того, как вы можете его использовать:
$request->validate([
    'contact' => ['required', 'regex:/^(?:\+?\d{1,3}[-.●]?)?\d{10}$/i', 'unique:users'],
]);

В этом примере шаблон регулярного выражения /^(?:\+?\d{1,3}[-.●]?)?\d{10}$/iсоответствует как адресам электронной почты, так и номерам телефонов. Он позволяет указать необязательный код страны, за которым следует сам номер.

  1. Использование нескольких правил проверки.
    Другой подход — объединить несколько правил проверки для обработки ввода электронной почты и номера телефона. Вот пример:
$request->validate([
    'contact' => ['required', 'email', 'or', 'required', 'regex:/^(?:\+?\d{1,3}[-.●]?)?\d{10}$/i', 'unique:users'],
]);

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

  1. Использование специального правила проверки.
    Если вы предпочитаете более модульный подход, вы можете создать собственное правило проверки для управления логикой проверки электронной почты или номеров телефонов. Вот пример:
Validator::extend('email_or_phone', function ($attribute, $value, $parameters, $validator) {
    return filter_var($value, FILTER_VALIDATE_EMAIL) || preg_match('/^(?:\+?\d{1,3}[-.●]?)?\d{10}$/i', $value);
});
$request->validate([
    'contact' => ['required', 'email_or_phone', 'unique:users'],
]);

В этом примере мы определяем пользовательское правило проверки под названием «email_or_phone», используя метод Validator::extend. Правило использует функцию filter_varдля проверки адреса электронной почты и функцию preg_matchдля проверки номера телефона.

Проверка вводимых пользователем данных — важная часть веб-разработки, и Laravel предоставляет гибкую и надежную систему проверки. В этой статье мы рассмотрели различные методы проверки ввода, который может быть адресом электронной почты или номером телефона, с использованием правил проверки Laravel. Независимо от того, решите ли вы использовать правило «регулярного выражения», объединить несколько правил проверки или создать собственное правило проверки, Laravel предлагает инструменты, необходимые для обеспечения целостности ваших данных.

Не забывайте всегда проверять вводимые пользователем данные, чтобы обеспечить безопасность и надежность вашего веб-приложения.