2012-02-07 3 views
0

는 내가 "CalendarForm"를 만들기 위해 38 시간 형태 "SportsDayForm"를 반복하려는, 그래서 나는 이런 식으로 embedForm을 사용 :symfony 1.4에서 embedForm을 사용하는 방법은 무엇입니까?

<?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> 

하지만 :

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는이 치명적인 오류를 반환합니다 "4 행의 D : \ htdocs \ soccer \ apps \ backend \ modules \ calendar \ templates_form.php에있는 정의되지 않은 메소드 CalendarForm :: getObject()를 호출하십시오."

누군가 나를 도울 수 있습니까?

답변

0

템플릿에 getObject을 부릅니다. 대부분 그게 문제입니다. getObjectsfFormObject의 한 방법입니다. CalendarFormsfForm이 아니라 sfFormObject입니다. 템플릿을 게시하는 것이 유용 할 수 있습니다.

+0

원래 포스트에 템플릿을 추가했습니다. – Webman

+0

제가 말했던 것처럼 4 행과 5 행의 템플릿에서 getObject 메소드를 호출하고 있습니다. 'CalendarForm'에서'sfFormObject' 폼을 확장해야 할 수도 있습니다. sfForm이 아닙니다 (어쩌면'BaseCalendarForm'이 필요합니다.'sfFormObject'를 확장합니다). 그렇지 않으면 그 형식은 얻을 수있는 '객체'가 없습니다. –

관련 문제