2012-02-07 97 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