2012-02-07 66 views
0

我要重复的形式“SportsDayForm” 38次,创造了“CalendarForm”,所以我用了embedForm这样:如何在symfony 1.4中使用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

您在模板中呼叫getObject。这很可能是问题所在。 getObjectsfFormObject中的一种方法。您的CalendarForm延伸sfForm,而不是sfFormObject。发布您的模板可能很有用。

+0

我在原来的文章中加入了模板 – Webman 2012-02-07 16:59:45

+0

就像我刚才说的,您在第4行和第5行的模板中调用了getObject方法。您可能需要在'CalendarForm'中扩展一个'sfFormObject'形式,不是一个sfForm(也许你需要'BaseCalendarForm',它扩展了'sfFormObject')。否则,这种形式没有“对象”来获取和玩。 – 2012-02-07 21:00:25