Пакет взаимодействия с сервисом DaData добавляет дополнительные правила валидации запросов, чтобы улучшить эффективность проверки пользовательских данных, а также стандартизировать их.
Внимание!
При использование проверки взымается плата за каждый запрос, подробнее о правилах тарификации смотрите на официальном сайте DaData
В данном примере проверяется поле name на корректность ФИО, а также поле email на корректность электронной почты по критериям 0 и 1
Во всех правилах можно дополнительным параметром указать предпочтительные коды проверки. Например da_data_name:0,1
use Boot\Abstracts\Requests\Request;
class ExampleRequest extends Request
{
public function rules(): array
{
return [
'name' => 'required|da_data_name',
'email' => 'required|da_data_email:0,1',
];
}
}
В данной таблице предствлены доступные правила для проверки.
| Имя правила | Описание |
|---|---|
da_data_name |
Проверка ФИО на корректность |
da_data_phone |
Проверка телефона на корректность |
da_data_email |
Проверка E-mail на корректность |
da_data_address |
Проверка адреса через КЛАДР и ФИАС |
da_data_passport |
Проверка паспорта через МВД |
Данное правило проверяет указанное ФИО на корректность
return [
'phone' => 'required|da_data_name',
];
Коды проверки (параметр ответа qc) по умолчанию использует код 0
qc |
Нужна ручная проверка? | Описание |
|---|---|---|
| 0 | нет | Исходное значение распознано уверенно |
| 2 | нет | Исходное значение пустое или заведомо «мусорное» |
| 1 | да | Исходное значение распознано с допущениями или не распознано |
Данное правило проверяет указанный телефон на корректность
return [
'phone' => 'required|da_data_phone',
];
Коды проверки (параметр ответа qc) по умолчанию использует код 0,3,7
| Код | Нужна ручная проверка? | Описание |
|---|---|---|
0 |
Нет | Российский телефон, распознан уверенно |
7 |
Нет | Иностранный телефон, распознан уверенно |
2 |
Нет | Телефон пустой или заведомо «мусорный» |
1 |
Да | Телефон распознан с допущениями или не распознан |
3 |
Да | Обнаружено несколько телефонов, распознан первый |
Данное правило проверяет указанный E-mail на корректность
return [
'email' => 'required|da_data_email',
];
Коды проверки (параметр ответа qc) по умолчанию использует код 0
qc |
Нужна ручная проверка? | Описание |
|---|---|---|
| 0 | нет | Корректное значение. Соответствует общепринятым правилам, реальное существование адреса не проверяется |
| 2 | нет | Пустое или заведомо «мусорное» значение |
| 3 | нет | «Одноразовый» адрес. Домены 10minutemail.com, getairmail.com, temp-mail.ru и аналогичные |
| 1 | да | Некорректное значение. Не соответствует общепринятым правилам |
| 4 | да | Исправлены опечатки |
Данное правило проверяет указанный адрес на корректность по справочникам КЛАДР и ФИАС
return [
'address' => 'required|da_data_address',
];
Коды проверки (параметр ответа qc) по умолчанию использует код 0,1,3
qc |
Нужна ручная проверка? | Описание |
|---|---|---|
| 0 | нет | Адрес распознан уверенно |
| 2 | нет | Адрес пустой или заведомо «мусорный» |
| 1 | да | Остались «лишние» части. Пример: «109341 Тверская область Москва Верхние Поля» — здесь лишняя «Тверская область». Либо в исходном адресе недостаточно данных для уверенного разбора. Пример: «Сходня Красная 12» — здесь нет региона и города. |
| 3 | да | Есть альтернативные варианты. Пример: «Москва Тверская-Ямская» — в Москве четыре Тверских-Ямских улицы. |
Данное правило проверяет указанные паспортные данные на реальность через сервис МВД
return [
'passport' => 'required|da_data_passport',
];
Коды проверки (параметр ответа qc) по умолчанию использует код 0
qc |
Нужна ручная проверка? | Описание |
|---|---|---|
| 0 | нет | Действующий паспорт |
| 2 | нет | Исходное значение пустое |
| 1 | да | Неправильный формат серии или номера |
| 100 | да | Недействительный паспорт |
После валидации можно извлечь стандартизированные (модифицированные) данные из проверки для того чтобы в дальнейшем использовать их в вашем приложении.
Для того чтобы получить модифицированные данные используйте следующие методы:
$request->validationModifiedData(); //вернет массив со всеми моделированными данными
$request->validationModifiedData($key); //Вернет модифицированное поле
Формат модифицированных данных смотрите в разделах по стандартизации данных