2013-10-24 1 views
1

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

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

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

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

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

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

multi model forms in 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

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

ответ

1

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

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


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

HAS_ONE и HAS_MANY

Пусть HAS_ONE пользователя Адрес и HAS_MANY сообщения электронной почты и адрес/E-mail 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(); 

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

 Смежные вопросы

  • Нет связанных вопросов^_^