如何在symfony 1.4中使用embedForm?

时间:2012-02-07 11:50:55

标签: php symfony-1.4

我想重复“SportsDayForm”形式38次以创建“CalendarForm”,所以我以这种方式使用了embedForm:

class CalendarForm extends sfForm
{
  public function configure()
  {

    $subForm = new sfForm();
    $form = new SportsDayForm();

    for ($i = 0; $i < 38; $i++)
    {
      $subForm->embedForm($i, $form);
    }

    $this->embedForm('calendar', $subForm);
   }   
}

模板是这样的:

<?php use_stylesheets_for_form($form) ?>
<?php use_javascripts_for_form($form) ?>

<form action="<?php echo url_for('calendar/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?id_sportsday='.$form->getObject()->getIdSportsDay() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
    <?php if (!$form->getObject()->isNew()): ?>
        <input type="hidden" name="sf_method" value="put" />
    <?php endif; ?>

    <?php echo $form ?>
</form>

但php返回此致命错误“在第4行的D:\ htdocs \ soccer \ apps \ backend \ modules \ calendar \ templates_form.php中调用未定义的方法CalendarForm :: getObject()”。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您在模板中调用getObject。最有可能的是这个问题。 getObjectsfFormObject中的一种方法。您的CalendarForm延伸sfForm,而非sfFormObject。发布模板可能很有用。