У меня есть пользовательское правило для проверки требований к паролю. Если проверка не пройдена, я хочу вернуть сообщения.
Но я хочу вернуть массив всех ошибок проверки в мой 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'];
}
}