具有嵌入关系的表单不会保存 Symfony 1.4 Doctrine

发布于 2024-10-06 10:49:27 字数 1818 浏览 0 评论 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();

我需要为 Mix 表新创建的 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();?>

这是我在 module/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;
   }

表单验证工作正常,但不会保存在任一数据库中。 我做错了什么?

I have embedded the Mutt form within the Mix form:
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();

I need the newly created id form for the Mix table to populate the mix_id field in the Mutt table.

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

Here is my action in 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;
   }

The form validation works correctly, but it won't save in either database.
What am I doing wrong??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

埋葬我深情 2024-10-13 10:49:27

您正在为 executeEdit 定义一个操作,但 processForm 是进行表单验证和保存到数据库的操作。 executeEdit 是在编辑现有作业时显示表单的操作。
请参阅:http://www.symfony-project.org/jobeet /1_4/Doctrine/zh/10#chapter_10_sub_the_form_action

You are defining an action for executeEdit, but processForm is the action where form validation and saving to the database occur. executeEdit is the action for displaying a form when editing an existing job.
See: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10#chapter_10_sub_the_form_action

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文