Один контроллер для обработки этого обьекта;3 экшина: - (post) создание обьекта - вызывает подготовку данных для новой записи, вызывает модель записи и перекидывающий на экшин редактирования;
- (post) редактирование обьекта - вызывает модель чтения данных из базы (если данные не готовы) и переходит к выводу вьюва самой формы;
- (ajax) запись обьекта - вызывает модель сохраняющую данные, посылает сообщение о результате.
3 процедуры подготовки данных.- Cоздания;
- Записи;
- Чтения.
Две модели:- Чтения информации SELECT ..., возвращающий данные из базы;
- Сохранения информации В конкретном случае она чуть сложннее. Но общем, в виде:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE a = VALUES(a), b=VALUES(b), c=VALUES(c), id=LAST_INSERT_ID(id);
Преимущество такого метода очень существенное: данные отсылаются/сохраняются/репортят но страница редактирования в браузере не перегружается (а еще можно их сохранять в localStorage, и сверять во втором экшине ).
Плохо только, что создается чистая запись, которая может отстаться чистой и в последствии. И потом возможно нужно будет консолидировать значущие записи, удалив новые не редактированные.