2013-05-08 3 views
0

설문지를 작성하고 싶습니다. 다음 코드를 사용하면 18 개 질문 (및 응답 필드)이 포함 된 테이블의 마지막 질문 만 볼 수 있습니다.동일한 엔티티에 대해 반복 심문을 symfony2 루프에 추가하는 방법

내 설문지가 더 복잡해지기 때문에 여러 답변을 포함한 몇 가지 질문, 참/거짓 등의 다른 질문이 있으므로 모음을 사용할 수 없습니다. 먼저이 문제를 해결하기 위해 코드를 단순화했습니다.

+0

무엇이 질문입니까? – cheesemacfly

+0

루프의 각 반복마다 새 formbuilder를 작성하고 있습니까? 이 일을해야합니까? –

+0

내 질문은 : (데이터베이스의) 모든 질문을보기에 표시하는 방법? 이제 마지막 질문 만 나타납니다. – Sandoche

답변

3

문제가 해결되었습니다. 친구에게 감사드립니다. createformBuilder를 교체해야했습니다.

public function generateForm($questionnaire, $evaluation) 
{ 

    //Get question array collection 
    $questions = $questionnaire->getQuestions(); 
    $formBuilderQuestionnaire = $this->createFormBuilder(); 
    $i = 0; 


    //Make a loop for each question 
    foreach($questions as $question) 
    { 

     //Create an answer form 
     $answer = new Answers($question, $evaluation); 
     $formBuilder = $this->get('form.factory')->createNamedBuilder($i, 'form', $answer); 


     //Add a answer text box with the question as label 
     $formBuilder->add('answerText' , 'textarea', array(
      'required' => false, 
      'label' => $question->getQuestionText() 
     )); 

     $formBuilderQuestionnaire->add($formBuilder); 

     $i++; 

    } 

    //Create the form 
    $form = $formBuilderQuestionnaire->getForm(); 
    return $form; 
    } 
관련 문제