Как использовать embedForm в Symfony 1.4? - PullRequest
0 голосов
/ 07 февраля 2012

Я хочу повторить форму «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 возвращает эту фатальную ошибку "Вызов неопределенного метода CalendarForm :: getObject () в D: \ htdocs \ soccer \ apps \ backend \ modules \ calendar \ templates_form.php в строке 4".

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 07 февраля 2012

Вы звоните getObject в своем шаблоне.Скорее всего в этом проблема.getObject - это метод в sfFormObject.Ваш CalendarForm расширяется sfForm, а не sfFormObject.Может быть полезно опубликовать свой шаблон.

...