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>
我已经试过了:
多个浏览器(桌面和移动)
删除了所有 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 属性。
我希望在呈现页面时输入 (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>
我已经试过了:
多个浏览器(桌面和移动)
删除了所有 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 属性。