2012-03-14 105 views
0

// - 形式timesheettype ---它不是實體類如何在Symfony2中設置字段值集合類型

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

您是否定義了TimeSheetDaily類的__constructor? 你有這樣的事嗎?

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

$this->dailyTimeSheet = new ArrayCollection(); 

//.... 
}; 

,以便正確初始化該集合Symfony能夠將數據插入到這一點很重要....

+0

但dailyTimesheet不是一個實體類。 TimeSheetDaily實體與其他實體沒有任何關係 – 2012-03-14 14:21:47

相關問題