2011-02-16 79 views
1

我有一個父窗體PageForm和一個嵌入窗體ContentForm。頁面與內容有一對多的關係。當正在編輯PageForm時,我只嵌入了1個ContentForm - 這工作正常。下面是PageFormSymfony 1.4嵌入表格

$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列。我已經嘗試覆蓋PageForm類的saveEmbeddedForms()方法,但是我發現它非常困難 - 有沒有人有任何關於如何做到這一點的示例或想法?

我曾經嘗試這樣做 - >

if ($forms === null) 
{ 
    $forms = $this->embeddedForms; 
} 
$newForm = new contentForm($forms['content']); 
$newForm->save(); 
return parent::saveEmbeddedForms($con, $forms); 

但其抱怨contentForm()期望和目標......我如何創建數組的新對象?

回答

2

這是我如何解決它......

​​