Валидатор json набора полей
Класс Evas\Validate\JsonFieldset наследуется от Evas\Validate\Fieldset и расширяет его поддержкой декодирования json-строки перед валидацией
Свойства локальных шаблонов ошибок
| Имя | Тип | Описание |
|---|---|---|
| $jsonParseError | string | шаблон ошибки разбора json |
| $jsonEmptyError | string | шаблон ошибки пустого json |
| $jsonTypeError | string | шаблон ошибки типа json, он должен быть строкой |
Валидация
isValid
Валидация данных
| Аргумент | Тип | Описание | По умолчанию |
|---|---|---|---|
| 1 | mixed | данные для валидации в виде json-строки | |
| 2 | bool|null | проверять на все ошибки | false |
| 3 | bool|null | вызывается ли из родительского набора полей | false |
$jsonFieldset->isValid('{"email":"test@test.com", "password": "test123"}');
throwIfNotValid
Проверяет данные на валидность с выбросом исключения в случае ошибки
| Аргумент | Тип | Описание |
|---|---|---|
| 1 | mixed | данные для валидации в виде json-строки |
$jsonFieldset->throwIfNotValid('{"email":"test@test.com", "password": "test123"}');
Получение ошибок валидации
Метод errors() позволяет получить объект ошибок валидации
$fieldset->errors();
Получение отвалидированных значений
В случае успеха валидации, отвалидированные значения будет доступны в переменной $values в виде ассоциативного массива с именами полей в качестве ключей.
$data = '{"email": "test@test.com", "password": "test123"}';
$fieldset = (new JsonFieldset([
'email' => new EmailField,
'password' => ['min' => 6, 'max' => 30],
])->throwIfNotValid($data);
echo 'Привет, ' . $fieldset->values['email'] . '. Добро пожаловать на наш сайт.';
Наследование
Вы можете создать свой класс валидатора json набора полей отнаследовавшись от Evas\Validate\JsonFieldset также как в примере с обычным валидатором набора полей.