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, а не город - конкретного кандидата. Вопрос - как правильно организовать запросы на изменение и создание связанных данных? Буду благодарен за любой совет!!


Ответы (0 шт):