Yii2 + Angular - получение Id вновь созданной записи в приложении Angular
Я пишу приложение backend Yii, frontend Angular. Сейчас я занимаюсь формой добавления новой записи в БД у меня появился следующий вопрос. Id вновь добавленной записи в базу данных будет известна только после отправки формы - она возвращается из сервиса следующим образом:
public function create(CandidateCreateDTO $dto)
{
$id = $this->candidates->nextId();
$dto->id = $id->getId();
$candidate = Candidate::create(
$id,
$dto->getName(),
$dto->getInfo(),
$dto->photo,
$dto->comment,
$dto->location,
$dto->getContacts(),
$dto->getSkills(),
$dto->getDocuments()
);
$this->candidates->add($candidate);
return $id->getId();
}
Для того - чтобы воспользоваться этим Id(например сделать POST запрос на роут candidates/{id}/documents-candidate,candidates/{id}/skills-candidate, candidates/{id}/contacts-candidate для создания прикрепленных документов, скиллов и контактов кандидата) - мне нужно как то его получить в приложении Angular? Как это правильно сделать? Код моего экшена Create в контроллере:
public function actionCreate() {
$params['lastname'] = \Yii::$app->request->getBodyParam('lastname');
$params['name'] = \Yii::$app->request->getBodyParam('name');
$params['fathername'] = \Yii::$app->request->getBodyParam('fathername');
$params['location'] = \Yii::$app->request->getBodyParam('location');
$params['salary'] = \Yii::$app->request->getBodyParam('salary');
$params['current_company'] = \Yii::$app->request->getBodyParam('company');
$params['current_position'] = \Yii::$app->request->getBodyParam('position');
$params['skills'] = null;
$params['documents'] = null;
$params['photo'] = null;
$params['wish'] = \Yii::$app->request->getBodyParam('wish');
$params['comment'] = \Yii::$app->request->getBodyParam('notes');
$this->dto->load($params);
$this->service->create($this->dto);
}
DTO:
public function load(array $params)
{
$this->id = ($params['id']) ?? '';
$this->name = ($params['name']) ?? '';
$this->lastname = ($params['lastname']) ??'';
$this->fathername = ($params['fathername']) ??'';
$this->location = (is_numeric($params['location'])) ? $params['location'] : null ;
$this->salary = (is_numeric($params['salary'])) ? $params['salary'] : 0;
$this->company = ($params['current_company']) ?? null;
$this->position = ($params['current_position']) ?? null;
$this->wish = ($params['wish']) ?? '';
$this->birth = ($params['birth']) ?? '';
$this->contacts = ($params['contacts']) ?? [];
$this->skills = (is_array($params['skills'])) ? $params['skills'] : [];
$this->comment = ($params['comment']) ?? '';
$this->photo = ($params['photo']) ?? '';
$this->comment = ($params['comment'] ?? '');
$this->documents = (is_array($params['documents'])) ? $params['documents'] : [];
}