Symfony 2.8 Forms/Twig:Twig 错误地呈现我的输入(类型=日期)

Symfony 2.8 Forms/Twig: Twig is rendering my input (type=date) incorrectly

我希望在呈现页面时输入 (type=date)。但是我得到 type=text.

<html>
    <head></head>
    <body>
        <input id="test_form_studentdob" class="normal" type="text" placeholder="DD-MM-YYYY" name="test_form[studentdob]">
    </body>
</html>

我已经试过了:

  1. 多个浏览器(桌面和移动)

  2. 删除了所有 CSS/JS 我正在加载的内容。这包括加载 jQuery/jQuery/bootstrap UI 库

知道我可能做错了什么吗?谢谢

Symfony 控制器的片段:

/**
 * @Route("/test")
 */
public function testAction(Request $request) {
    $form = $this->createForm(new TestFormType());
    $form->handleRequest($request);

    return $this->render(
        "AppBundle:SelfService:TestForm.html.twig"
        , array("form" => $form->createView())
    );
}

Symfony 表单类型 class:

<?php
// src/appBundle/Form/TestFormType.php
namespace AppBundle\Form;

use Symfony\Component\Form\AbstractType
    , Symfony\Component\Form\FormBuilderInterface
    , Symfony\Component\OptionsResolver\OptionsResolverInterface;

class TestFormType extends AbstractType {
    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(
            array(
                "attr" => array(
                        "id" => "testform"
                )
            )
        );
    }

    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder
            ->setMethod("GET")
            ->add(
                "studentdob"
                , "date"
                , array(
                    "attr" => array(
                        "class" => "normal"
                        , "placeholder" => "DD-MM-YYYY"
                    )
                    , "format" => "dd-MM-yyyy"
                    , "required" => false
                    , "widget" => "single_text"
                )
            );
    }
}

这是我的 Twig 模板:

{% block body %}
    {{ form_widget(form.studentdob) }}
{% endblock %}

HTML date input 具有独特的格式:yyyy-mm-dd

A valid full-date as defined in RFC 3339, with the additional qualification that the year component is four or more digits representing a number greater than 0.

如果您想使用其他格式,您必须使用文本输入。

因此,当您指定另一种格式时,Symfony 使用文本输入和 pattern 属性。