Валидация номера телефона?

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

1. Включите механизм валидации: Laravel предоставляет удобный способ валидации с использованием фасада Validator. По умолчанию фасад уже включен в новом проекте Laravel. Если вы работаете вне фреймворка, установите пакет illuminate/validation через Composer.

2. Создайте правило валидации: Laravel предоставляет множество встроенных правил валидации, но если вам нужно определенное правило для валидации номера телефона, вам придется создать собственное правило. Для этого выполните команду php artisan make:rule PhoneValidation, где PhoneValidation - имя правила.

3. Опишите логику в правиле: Откройте файл PhoneValidation.php, который был создан предыдущей командой, и добавьте логику для валидации номера телефона. Например, вы можете вызвать функцию preg_match или встроенные функции PHP для проверки соответствия номера телефона определенному формату.

Вот пример правила валидации, которое проверяет, что указанный номер телефона состоит только из цифр и имеет длину 10 символов:

<?php

namespace AppRules;

use IlluminateContractsValidationRule;

class PhoneValidation implements Rule
{
    public function passes($attribute, $value)
    {
        return preg_match('/^[0-9]{10}$/', $value);
    }

    public function message()
    {
        return 'The :attribute must be a 10-digit phone number.';
    }
}

4. Используйте правило валидации: Когда вы создали правило валидации, вы можете использовать его в своих контроллерах или формах. Вот пример использования правила валидации в контроллере:

<?php

namespace AppHttpControllers;

use AppRulesPhoneValidation;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;

class PhoneNumberController extends Controller
{
    public function checkPhoneNumber(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'phone_number' => ['required', new PhoneValidation],
        ]);

        if ($validator->fails()) {
            // обработка ошибок валидации
        }

        // успешная валидация
    }
}

В этом примере мы используем правило валидации new PhoneValidation для проверки входящего параметра phone_number. Если валидация не проходит, Laravel будет автоматически возвращать ошибки валидации.

5. Отобразите ошибки валидации: Если валидация не прошла успешно, вы можете отобразить ошибки в форме для пользователя. Вот пример, как вы можете это сделать во view:

<form method="POST" action="/phone-number">
    @csrf

    <input type="text" name="phone_number">

    @error('phone_number')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror

    <button type="submit">Submit</button>
</form>

В этом примере мы используем директивы @error и $message для отображения ошибок в форме.

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