2010-12-06 52 views
0

我已經嵌入在混合形式中的笨蛋形式: MixForm.class.php:形式嵌入關係也救不了的Symfony 1.4學說

$this->embedRelation('Mutt'); 
$form = new MuttForm(null, array(
    'mix' =>$this->getObject(), 
)); 
$this->embedForm('Mutt', $form); 
$this->widgetSchema['Mutt'] = $form->getWidgetSchema(); 
$this->widgetSchema['Mutt']['mix_id'] = new sfWidgetFormInputHidden(); 
$this->validatorSchema['Mutt'] = $form->getValidatorSchema(); 

我需要混音臺新創建的ID形式填充Mutt表中的mix_id字段。

<?php echo $form->renderHiddenFields();?> 
<?php echo $form['name']->renderRow();?> 
<?php echo $form['parent1']->renderRow();?> 
<?php echo $form['parent2']->renderRow();?> 
<?php echo $form['parent3']->renderRow();?> 
<?php echo $form['parent4']->renderRow();?> 
<?php echo $form['parent5']->renderRow();?> 
<?php echo $form['Mutt']['creator']->renderRow();?> 
<?php echo $form['Mutt']['email']->renderRow();?> 
<?php echo $form['Mutt']['website']->renderRow();?> 
<?php echo $form['Mutt']['caption']->renderRow();?> 
<?php echo $form['Mutt']['photo']->renderRow();?> 
<?php echo $form['Mutt']['copyright']->renderRow();?> 
<?php echo $form['Mutt']->renderHiddenFields();?> 

這裏是我的模塊/混合/動作動作/的actions.class.php

public function executeEdit(sfWebRequest $request) 
    { 
    $this->form = new MixForm(); 
    if($request->isMethod('post')): 
     $this->form->bind($request->getParameter('mix'), $request->getFiles($this->form->getName())); 
     if($this->form->isValid()): 
      $this->form->save(); 
      $this->redirect('pure/add'); 
     endif; 
    endif; 
    } 

表單驗證工作正常,但它不會在任何數據庫保存。 我在做什麼錯?

回答

0

您正在定義executeEdit的操作,但processForm是表單驗證和保存到數據庫的操作。 executeEdit是編輯現有作業時顯示錶單的操作。 請參閱:http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10#chapter_10_sub_the_form_action

+0

我組合了該操作,並且在加入其他表單之前,這項工作正常,可以保存表單。我所做的只是添加$ request-> getFiles($ this-> form-> getName())來綁定,因爲嵌入式表單有一個文件上傳組件。 – Lauren 2010-12-08 18:32:21