У меня есть родительская форма PageForm и встроенная форма ContentForm. Страница имеет отношение один-ко-многим с Контентом. Когда PageForm редактируется, я вставляю только 1 ContentForm - это работает нормально. Вот метод настройки PageForm
$content = new content();
$content->Page = $this->getObject();
if (sfContext::getInstance()->getActionName() == 'new')
{
$form = new contentForm($content);
} else
{
$form = new contentForm($this->getObject()->getPublishedVersion());
}
$this->embedForm('content', $form);
метод getPublishedVersion()
возвращает один объект содержимого.
Редактирование и сохранение работает нормально - при сохранении родительской формы также выполняется обновление для встроенного объекта в базе данных ...
Моя проблема в том, что я не хочу ОБНОВЛЯТЬ существующую запись, я хочу создать новую запись и увеличить столбец version_number. Я попытался переопределить метод saveEmbeddedForms()
класса PageForm, но я нахожу его очень сложным - у кого-нибудь есть примеры или идеи, как мне это сделать?
Я пробовал это ->
if ($forms === null)
{
$forms = $this->embeddedForms;
}
$newForm = new contentForm($forms['content']);
$newForm->save();
return parent::saveEmbeddedForms($con, $forms);
но его жалобы на то, что contentForm () ожидает и возражает ... как мне создать новый объект из массива?