Возврат массива сообщений правил во время проверки FormRequest - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть пользовательское правило для проверки требований к паролю. Если проверка не пройдена, я хочу вернуть сообщения.

Но я хочу вернуть массив всех ошибок проверки в мой VueJS SPA.

В настоящее время я получаю вывод я просто получаю сообщения об ошибках "password"

Как я могу получить массив сообщений проверки? Или каждое правило проверки (длина, заглавные буквы и т. Д. c .. должно быть в своем собственном классе правил?

public function expired(PasswordChangeRequest $request) {
        // do on form submission
}

class PasswordRequirement implements Rule
{

    private $error_msgs  = [];

    public function __construct()
    {
        //
    }


    public function passes($attribute, $value)
    {
        if (empty($value)) {
            $this->error_msgs .= ':attribute is required.';
        }

        if (strlen($value) < 6 || strlen($value) >  10) {
            $this->error_msgs .=  'Password must be between 6 and 10 characters.';
        }


        if (!preg_match('/[0-9]/', $value)) {
            $this->error_msgs .=  'Password must contain at least one number.';

        }

        if (!preg_match('/[A-Z]/', $value)) {
            $this->error_msgs .= 'Password must contain at least one uppercase letter.';
        }

        if (!preg_match('/[a-z]/', $value)) {
            $this->error_msgs .= 'Password must contain at least one lowercase letter.';

        }

            return !(count($this->error_msgs) > 0);
    }

    public function message()
    {
        return $this->error_msgs;
    }
}



class PasswordChangeRequest extends FormRequest
{

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'password'      => new PasswordRequirement(),
        ];
    }

    public function messages()
    {
        return ['password'];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...