Я прочитал много документации о том, как обрабатывать модели и формы в 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();
Я думаю, вы понимаете, как настроить формы? Те ссылки, которые вы отправляете, довольно понятны.