Как обрабатывать сложную форму с несколькими моделями и табличный ввод в yii

Я прочитал много документации о том, как обрабатывать модели и формы в yii, и я нашел решение, которое работает для случая, которое я объясняю ниже, но проблема в том, что код сложный для записи и поддержки, поэтому Я ищу предложения.

Дело в следующем: мне нужно сэкономить две разные модели и третью модель, которая является табличным вводом (больше экземпляров одной и той же модели).

Например, я могу сохранить запись в блоге (первая модель) с информацией об авторе (вторая модель) и списком ссылок (третья модель, табличная).

Я хотел бы проверить их все через ajax за один шаг и сохранить их транзакционно.

Я прочитал все эти ссылки.

http://www.yiiframework.com/wiki/559/tabular-input-validating-and-saving-related-models/

мультимодельные формы в yii

http://www.yiiframework.com/wiki/19/how-to-use-a-single-form-to-collect-data-for-two-or-more-models/

http://www.yiiframework.com/wiki/218/how-to-use-single-form-to-collect-data-for-two-or-more-models-cactiveform-and-ajax-validation-edition/

http://www.yiiframework.com/doc/guide/1.1/en/form.table

http://www.yiiframework.com/wiki/362/how-to-use-multiple-instances-of-the-same-model-in-the-same-form/

http://www.yiiframework.com/forum/index.php/topic/14082-transaction-on-multiple-ar/

http://www.yiiframework.com/wiki/559/tabular-input-validating-and-saving-related-models/

https://github.com/yiiext/with-related-behavior

Последняя ссылка интересна, но если у кого-то есть одна лучшая практика, я буду благодарен ему.

Я думаю, вы ищете что-то вроде этого: http://www.yiiframework.com/extension/eadvancedarbehavior/

Это расширение, которое делает именно то, что вы просите.


Цитируется по ссылке:

HAS_ONE и HAS_MANY

Предположите адрес пользователя HAS_ONE и HAS_MANY, а также адрес / адрес электронной почты пользователя BELONGS_TO (оба имеют столбец foreignkey user_id).

Итак, вы можете сделать сейчас:

$blog = new Blog(); $blog->author = $author; //the author model object $blog->references = array( $references1, $references2, ... ) ; //reference model objects $blog->save(); 

Я думаю, вы понимаете, как настроить формы? Те ссылки, которые вы отправляете, довольно понятны.