我想重复“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()”。
有人可以帮助我吗?
答案 0 :(得分:0)
您在模板中调用getObject
。最有可能的是这个问题。 getObject
是sfFormObject
中的一种方法。您的CalendarForm
延伸sfForm
,而非sfFormObject
。发布模板可能很有用。