0

Mutt フォームを Mix フォームに埋め込みました: MixForm.class.php:

$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();

Mutt テーブルの mix_id フィールドに入力するには、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();?>

これがmodules/mix/actions/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;
   }

フォームの検証は正しく機能しますが、どちらのデータベースにも保存されません。私は何を間違っていますか??

4

1 に答える 1

0

のアクションを定義してexecuteEditprocessFormますが、フォームの検証とデータベースへの保存が行われるアクションです。executeEdit既存のジョブを編集する際にフォームを表示するアクションです。参照: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10#chapter_10_sub_the_form_action

于 2010-12-08T14:37:09.560 に答える