2012-03-14 3 views
0

// - 폼 timesheettype --- 그것은 엔티티 클래스없는

class TimeSheetType extends AbstractType { 

     public function buildForm(FormBuilder $builder, array $options) { 
      $builder-> 
        add('dailyTimeSheet', 'collection', array('type' => new DailyType(), 'allow_add' => true, 'allow_delete' => true, 'prototype' => true,)) 
        ->add('comment','textarea'); 
     } 

     public function getName() { 
      return 'TimeSheetDaily'; 
     } 

    } 

// --- DailyType - 기업이 유형이

class DailyType extends AbstractType { 


    public function buildForm(FormBuilder $builder, array $options) { 


     $builder->add('project','entity',array('class'=> 'Parabola\EntityBundle\Entity\Project','property'=>'name')) 
       ->add('projectTask', 'entity', array('class'=> 'Parabola\EntityBundle\Entity\ProjectTask','property'=>'name')) 
       ->add('hours', 'text'); 

    } 
    public function getDefaultOptions(array $options) 
    { 
     return array('data_class' => 'Parabola\EntityBundle\Entity\TimeSheetDaily'); 
    } 

public function getName() { 
    return 'DailySheet'; 
} 

// - controller--

$repository = $this->getDoctrine() 
       ->getRepository('ParabolaEntityBundle:TimeSheetDaily')->findAll(); 
     $form = $this->createForm(new \Parabola\TimeSheetBundle\Form\TimeSheetType(),$repository); 

내가 엔티티 클래스 TimeSheetDaily 있습니다. TimeSheetType의 양식을 작성하는 동안 TimeSheetDaily 클래스 오브젝트의 배열을 양식 유형으로 전달합니다. TimeSheetType에는 DailyType의 컬렉션이 있습니다. TimeSheetDaily 엔티티 일 뿐이 아닌 콜렉션 필드에 값을 설정하는 것이 아닙니다.

답변

0

__constructorTimeSheetDaily 클래스로 정의 했습니까? 다음과 같은 것이 있습니까?

public function __construct(){ 
//.... 

$this->dailyTimeSheet = new ArrayCollection(); 

//.... 
}; 

이 올바르게에 데이터를 삽입 할 수 Symfony 위해서는이 컬렉션을 초기화하는 것이 중요합니다 ....

+0

하지만 dailyTimesheet가 엔티티 클래스가 아닙니다. TimeSheetDaily 엔티티는 다른 엔티티 cals와 관계가 없습니다. –