嵌入表单集合

时间:2013-09-12 12:38:27

标签: javascript php forms twitter-bootstrap symfony

我坚持使用嵌入式表格。

我有一个由三个字段组成的假日表格:名称,开头和结尾。 请注意,开始和结束由Bootstrap date-time picker

管理

Holiday Form

然后我有一个由一些字段和一个假日表格集合组成的成绩表格。 添加或删除假日表单的javascript部分工作正常。

Grade From

正如您在此图片中看到的,不显示开始和结束图标。但这不是全部,日期时间选择器不起作用。 我发现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'));
}

1 个答案:

答案 0 :(得分:1)

datepicker无法正常工作,因为您通过javascript添加了datepicker字段。你必须打电话给

$('.datepicker').datetimepicker({
    format: 'dd/MM/yyyy hh:mm:ss'
});

从原型添加新行时。通过调用.datetimepicker(),您可以为所选字段启用datepicker。

关于缺少的类您必须发布DatePickerType的内容。