我坚持使用嵌入的表单集合。
我有一个由三个字段组成的假期表单:名称、开始和结束。请注意,开始和结束由Bootstrap 日期时间选择器管理
然后我有一个由一些字段和一组假期表组成的成绩表。添加或删除假期表格的 javascript 部分工作正常。
正如您在此图像中看到的,开始和结束图标未显示。但这还不是全部,日期时间选择器不起作用。我发现 symfony 给出的数据原型不完整,缺少一些类。
我应该在我的类型中添加一个选项或其他内容以使其正常工作吗?
编辑 :
我的成绩类型:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('name');
$builder->add('campus', 'entity',
[
'class' => 'Ent\HomeBundle\Entity\Campus',
'property' => 'name',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) use ($options) {
$qb = $er->createQueryBuilder('c');
if ($this->controller->getCurrentUser()->getGroup()->getRole() == 'ROLE_ADMIN') {
$qb->where($qb->expr()->in('c', ':campuses'))
->setParameter('campuses', $this->controller->getCurrentUser()->getCampuses()->toArray());
}
return $qb;
}
]
);
$builder->add('school', 'entity', [
'class' => 'Ent\HomeBundle\Entity\School',
'property' => 'name'
]
);
$builder->add('holidays', 'collection',
[
'type' => new HolidayType($this->controller),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false
]
);
}
我的假期类型:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('name');
$builder->add('begin', new DatePickerType(), ['help' => 'Only the day and the month will be used']);
$builder->add('end', new DatePickerType(), [
'required' => false,
'help' => 'Only the day and the month will be used',
]
);
$builder->addEventListener(FormEvents::POST_BIND, array($this, 'isEndValid'));
}