Как лучше хранить временные данные в Yii2

Я создаю систему управления на yii2. У меня есть задача создать компанию и сразу же в этой форме сделать добавление офисов, которых может быть много.

Офисы привязываются к компании через поле company_id.

Сейчас сделал просто добавление группы полей для создания офиса, но такое решение не нравится. Хотелось бы сделать кнопку "Добавить офис" и при нажатии открывать модальное окно, заполнять и сохранять. Но как тогда делать привязку? Компании еще нету.

Пока у меня 2 варианта:

  1. при заходе на форму генерировать некий ключ, который записывать офисам и при сохранение компании искать офисы с этим ключом и присваивать id компании;

  2. хранить в сессии данные про офисы.

Оба варианта пугают тем, что если не сохранить компанию - будет мусор. Как это можно обойти? Или может есть более правильное решение?

P.S. Возможно ли открыть транзакцию и потом в нужный момент закрыть ее?


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

Автор решения: Alex Black

Вам необходимо заполнять полную форму, не сохраняя никакие данные, а уже после заполнения сохранить всё за один раз: одновременно и компанию, и её офисы

→ Ссылка