-ФИО
-Автодополнение при вводе («подсказки»)
DaDataName::fias(string $name) Разбивает ФИО из строки по отдельным полям (фамилия, имя, отчество). Определяет пол и склоняет по падежам.
Основные кейсы
Параметры вызова
| Название | Тип | Optional | Default value | Описание |
|---|---|---|---|---|
name |
string |
false |
ФИО |
Пример вызова
<?php
namespace App;
use MoveMoveIo\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name standardization
*
* @return void
*/
public function nameExample() : void
{
$dadata = DaDataName::standardization('Срегей владимерович иванов');
dd($dadata);
}
}
Пример ответа
array:1 [
0 => array:10 [
"source" => "Срегей владимерович иванов"
"result" => "Иванов Сергей Владимирович"
"result_genitive" => "Иванова Сергея Владимировича"
"result_dative" => "Иванову Сергею Владимировичу"
"result_ablative" => "Ивановым Сергеем Владимировичем"
"surname" => "Иванов"
"name" => "Сергей"
"patronymic" => "Владимирович"
"gender" => "М"
"qc" => 1
]
]
Описание ответа
| Название | Описание |
|---|---|
source |
Исходное ФИО одной строкой |
result |
Стандартизованное ФИО одной строкой |
result_genitive |
ФИО в родительном падеже (кого?) |
result_dative |
ФИО в дательном падеже (кому?) |
result_ablative |
ФИО в творительном падеже (кем?) |
surname |
Фамилия |
name |
Имя |
patronymic |
Отчество |
gender |
Пол. М - мужской (male), Ж - женский (female), НД - не удалось однозначно определить |
qc |
Код проверки. Таблица кодов проверка ниже |
Коды проверки (параметр ответа qc)
qc |
Нужна ручная проверка? | Описание |
|---|---|---|
| 0 | нет | Исходное значение распознано уверенно |
| 2 | нет | Исходное значение пустое или заведомо «мусорное» |
| 1 | да | Исходное значение распознано с допущениями или не распознано |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
| Код | Описание |
|---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use MoveMoveIo\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData define city by FIAS code
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataName::standardization('Срегей владимерович иванов');
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}
DaDataName::prompt(string $name, int $count, int $gender, array $parts) Помогает человеку быстро ввести ФИО на веб-форме или в приложении.
Основные кейсы
Метод не предназначен для выполнения следующих задач
Подсказки не подходят для автоматической обработки ФИО. Они предлагают варианты, но не гарантируют, что угадали правильно. Поэтому окончательное решение всегда должен принимать человек.
Для автоматической обработки, транслитерации и склонения по падежам используйте DaDataName::fias(string $name) метод ФИО, описание которого вы найдете выше.
Параметры вызова
| Название | Тип | Optional | Default value | Описание |
|---|---|---|---|---|
query |
string |
false |
Текст запроса | |
count |
int |
true |
10 | Количество результатов. Максимум 20 |
gender |
int |
true |
0 | Пол. Для управления пола, мы советуем использовать константы класса Gender, Неизвестный пол Gender::UNKNOWN, Gender::MALE - мужской, Gender::FEMALE - женский |
parts |
array |
true |
[] | Подсказки по фасти ФИО |
Формирования массива подсказок по фасти ФИО parts
Для формирования, воспользуйтесь набором констант классаа Parts.
Только имена:
use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
Имена и отчества:
use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::PATRONYMIC);
Имена и фамилии:
use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::SURNAME]);
Пример вызова
<?php
namespace App;
use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
use MoveMoveIo\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name prompt
*
* @return void
*/
public function nameExample() : void
{
$dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
dd($dadata);
}
}
Пример ответа
array:1 [
"suggestions" => array:2 [
0 => array:3 [
"value" => "Виктор"
"unrestricted_value" => "Виктор"
"data" => array:6 [
"surname" => null
"name" => "Виктор"
"patronymic" => null
"gender" => "MALE"
"source" => null
"qc" => "0"
]
]
1 => array:3 [
"value" => "Виктория"
"unrestricted_value" => "Виктория"
"data" => array:6 [
"surname" => null
"name" => "Виктория"
"patronymic" => null
"gender" => "FEMALE"
"source" => null
"qc" => "0"
]
]
]
]
Описание ответа
| Название | Описание |
|---|---|
value |
Исходное ФИО одной строкой |
unrestricted_value |
Стандартизованное ФИО одной строкой |
data['surname'] |
Фамилия |
data['name'] |
Имя |
data['patronymic'] |
Отчество |
data['gender'] |
Пол. MALE - мужской (male), FEMALE - женский (female), UNKNOWN - не удалось однозначно определить |
data['source'] |
Не используется |
date['qc'] |
Код проверки. 0 - все части ФИО известны, 1 - в ФИО есть неизвестная часть |
Exceptions
При вызове методов, вы можете обрабатывать коды исключений и их сообщения
| Код | Описание |
|---|---|
400 |
Некорректный запрос |
401 |
В запросе отсутствует API-ключ |
403 |
Не подтверждена почта или недостаточно средств для обработки запроса, пополните баланс |
405 |
Запрос сделан с методом, отличным от POST |
413 |
Слишком большая длина запроса или слишком много условий |
429 |
Слишком много запросов в секунду или новых соединений в минуту |
5xx |
Произошла внутренняя ошибка сервиса |
Более детальную информацию вы можете получить из сообщения исключения.
Пример получения сообщения исключения
<?php
namespace App;
use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
use MoveMoveIo\DaData\Facades\DaDataName;
/**
* Class DaData
* @package App\DaData
*/
class DaData
{
/**
* DaData name prompt
*
* @return void
*/
public function nameExample() : void
{
try {
$dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);
dd($dadata);
} catch (\Exception $e) {
dd($e->getMessage());
}
}
}