Yii Rest - работа со свзязанными данными
Я начинающий разработчик Yii у меня сейчас стоит задача - написать приложение - Yii backend Angular - frontend - и я не могу понять такой очень простой вещи -я не могу сдвинуться с места. У меня есть entity Candidates и много связанных с этой entity данных - например - город в котором проживает кандидат, его скиллы, его связанные документы, его контакты - но остановлюсь на городе. Например - я добавил в entity связь с таблицей городов - и добавил поле city - в extraFields - я могу воспользоваться следующим GET запросом для получения кандидата и его города например по урлу :
http://recruiter-rest-test/web/apicandidates/f61e8b51-d16c-464d-9929-44d1b05dba10?expand=city
я получаю JSON следующего вида :
{
"id": "f61e8b51-d16c-464d-9929-44d1b05dba10",
"lastname": "Надь",
"name": "Виктор",
"fathername": "Сергеевич",
"location": 1,
"current_status": 3,
"company": "BADOO",
"position": "Middle JS Dev Inc",
"salary": 700,
"date_birth": "2020-01-30",
"date_created": "2020-02-07 19:49:03",
"photo": null,
"wish": null,
"documents": null,
"notes": "<p>Petrenko Grigory Sergeevich php</p>",
"city": {
"id": 1,
"country_id": 1,
"name": "Киев"
}}
я пытюсь понять - как мне организовать работу -с этими данными - например сделать Update связанной записи городов - если я делаю Put запрос на этот же урл - со следующим телом запроса :
{
"id": "f61e8b51-d16c-464d-9929-44d1b05dba10",
"lastname": "Надь",
"name": "Виктор",
"fathername": "Сергеевич",
"location": 1,
"current_status": 3,
"company": "BADOO",
"position": "Middle JS Dev Inc",
"salary": 700,
"date_birth": "2020-01-30",
"date_created": "2020-02-07 19:49:03",
"photo": null,
"wish": null,
"documents": null,
"notes": "<p>Petrenko Grigory Sergeevich php</p>",
"city": {
"id": 11,
"country_id": 1,
"name": "Полтава"
}}
мне возвращается старый не обновленный ответ и соотвественно записи не обновляются. Я понимаю - что скорее всего я делаю неправильно - и необходимо обновлять связанные данные по следующему урлу:
http://recruiter-rest-test/web/apicandidates/f61e8b51-d16c-464d-9929-44d1b05dba10/city
пытался настроить UrlManager - используя параметр Prefix - в результате GET запросом по урл:
http://recruiter-rest-test/web/apicandidates/f61e8b51-d16c-464d-9929-44d1b05dba10/city
я получаю - список всех городов из таблицы- то что по дефолту возвращает мой контроллер CitiesController, а не город - конкретного кандидата. Вопрос - как правильно организовать запросы на изменение и создание связанных данных? Буду благодарен за любой совет!!