如何在 symfony2 中创建自定义字段类型?

编程入门 行业动态 更新时间:2024-10-25 22:26:58
本文介绍了如何在 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 extends Symfony\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 中创建自定义字段类型?

    本文发布于:2023-07-14 22:11:31,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1107312.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:自定义   字段   类型   如何在

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!