Как сделать валидацию для пароля,чтобы были только анг буквы,и хоть 1 заглавная?

Для реализации валидации пароля в Laravel, чтобы требовались только английские буквы и хотя бы одна заглавная буква, вам потребуется использовать различные правила валидации, доступные в Laravel.

Сначала вы можете определить правило валидации в файле ресурсов lang, чтобы использовать кастомное сообщение об ошибке. Откройте файл resources/lang/en/validation.php и добавьте следующий код:

'alpha_with_uppercase' => 'The :attribute must contain only alphabetical characters with at least one uppercase letter.',

Теперь вы можете создать кастомное правило валидации, чтобы выполнить проверку на наличие только английских букв и хотя бы одной заглавной буквы. Для этого создайте файл app/Rules/AlphaWithUppercase.php и добавьте следующий код:

<?php

namespace AppRules;

use IlluminateContractsValidationRule;

class AlphaWithUppercase implements Rule
{
    public function passes($attribute, $value)
    {
        $hasUppercase = preg_match('/[A-Z]+/', $value);
        $isAlpha = ctype_alpha($value);

        return $hasUppercase && $isAlpha;
    }

    public function message()
    {
        return __('validation.alpha_with_uppercase');
    }
}

Теперь вы можете использовать это кастомное правило валидации в контроллере или другом месте, где выполняется валидация пароля. Например, предположим, что у вас есть контроллер UserController с методом store, который принимает входные данные запроса для создания нового пользователя. В методе store вам нужно добавить валидацию пароля с использованием кастомного правила:

<?php

namespace AppHttpControllers;

use AppRulesAlphaWithUppercase;
use IlluminateHttpRequest;
use AppUser;

class UserController extends Controller
{
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'password' => ['required', 'string', new AlphaWithUppercase],
        ]);

        // Создайте пользователя или выполните другую логику

        return response()->json(['message' => 'User created successfully'], 201);
    }
}

В этом примере мы добавляем следующее правило валидации в массив правил в validate() методе:
new AlphaWithUppercase - это наше кастомное правило валидации для пароля.

Теперь, если ввод пароля не соответствует правилам, будет возвращена ошибка, а пользователь не будет создан. Если же ввод корректен, процесс продолжится, и вы можете создать пользователя или выполнить другую логику.

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