如何在Symfony2中设置字段值集合类型
问题描述:
// - 形式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实体。
答
您是否定义了TimeSheetDaily
类的__constructor
? 你有这样的事吗?
public function __construct(){
//....
$this->dailyTimeSheet = new ArrayCollection();
//....
};
,以便正确初始化该集合Symfony
能够将数据插入到这一点很重要....
但dailyTimesheet不是一个实体类。 TimeSheetDaily实体与其他实体没有任何关系 – 2012-03-14 14:21:47