如何在 symfony2 中创建自定义字段类型? [英] How can I make a custom field type in symfony2?
问题描述
我想在 symfony2 中创建一个名为 daterange
的自定义表单字段,它将扩展默认的 symfony 日期类型表单字段并将日期范围(开始日期和结束日期)放入两个不同的文本框.
因为我不喜欢 twig 模板引擎这个例子只用于 PHP 模板
你需要做的是:
新
TestBundle\Form\Extension\Core\Type\DateRangeType
扩展了Symfony\Component\Form\AbstractType
在这里你应该:
一种.编写自己的 getParent、getName、buildForm 方法
湾getParent 返回字段"
C.getName 返回日期范围"
d.buildForm 有$builder->add('start', ...)->add('end', ...)->setAttribute('widget', 'daterange')
将其添加到 DI(以 config.yml 为例)
<前>服务:form.type.daterange:类:TestBundle\Form\Extension\Core\Type\DateRangeType标签:- { 名称:form.type,别名:daterange }
在
TestBundle/Resources/views/Form/daterange_widget.html.php
中为其创建新的小部件您可以以日期小部件为例.src/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php
添加到配置(以config.yml为例)
<前>框架:模板:形式:资源:- 'TestBundle:Form'
如 nefo_x 所说的更多小部件定制,请查看表单定制.
I want to make a custom form field in symfony2 named daterange
, which will extends the default symfony date type form field and take date range(start date and end date) into two different text-box.
Cause I don't like twig template engine this example only for PHP templating
What you need is to make:
New
TestBundle\Form\Extension\Core\Type\DateRangeType
which extendsSymfony\Component\Form\AbstractType
Here you should:
a. write your own getParent, getName, buildForm methods
b. getParent return 'field'
c. getName return 'daterange'
d. buildForm has$builder->add('start', ...)->add('end', ...)->setAttribute('widget', 'daterange')
Add it to the DI (config.yml as example)
services: form.type.daterange: class: TestBundle\Form\Extension\Core\Type\DateRangeType tags: - { name: form.type, alias: daterange }
Create new widget for it in
TestBundle/Resources/views/Form/daterange_widget.html.php
you can take date widget as example.Src/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php
Add to config (config.yml as example)
framework: templating: form: resources: - 'TestBundle:Form'
And for more widget customization as nefo_x said check form customization.
这篇关于如何在 symfony2 中创建自定义字段类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!