Symfony2:使用具有相同名称的自定义字段类型覆盖内置字段类型

2024-01-29

As per 本文 http://symfony.com/doc/current/cookbook/form/create_custom_field_type.html在 Symfony 文档上,我创建了一个自定义字段类型,将其设置为services.yml,并且我能够成功地使用它。

例如,我创建一个名为的自定义字段customdate如下,效果完美:

# src/Acme/DemoBundle/Resources/config/services.yml
services:
    acme_demo.form.type.date:
        class: Acme\DemoBundle\Form\Type\DateType
        tags:
            - { name: form.type, alias: customdate }

但是,如果我尝试将自定义字段命名为date(这与现有的 Symfony 字段类型 http://symfony.com/doc/current/reference/forms/types/date.html,因为这是我试图覆盖的),如下所示,然后 Symfony 完全忽略我的自定义字段,并默认为内置的 Symfonydate字段类型改为:

# src/Acme/DemoBundle/Resources/config/services.yml
services:
    acme_demo.form.type.date:
        class: Acme\DemoBundle\Form\Type\DateType
        tags:
            - { name: form.type, alias: date }

我已经检查过我的getName()函数返回正确的名称,与我在中提供的别名相匹配services.yml.

我使用上述服务的代码如下。

这有效:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('date', 'customdate')));
}

这不起作用:(或者更确切地说,Symfony 使用内置字段类型而不是我的)

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('date', 'date')));
}

我应该注意,如果我将“customdate”或“date”替换为手动创建的对象,例如new Date()然后就可以正常工作了。问题似乎具体在于 Symfony 更喜欢其内置字段类型而不是中指定的字段类型services.yml.

我的问题:有没有办法用同名的自定义字段类型覆盖内置的 Symfony 字段类型?显然,根据我上面的描述,Symfony 似乎会忽略任何与内置 Symfony 字段类型同名的自定义字段。有没有办法解决?


据我所知,没有办法真正覆盖基本字段类型,您可以继承它们并使用您自己的名称。

但是,如果您要覆盖的字段类型未提供您认为应该报告的该类型可能存在的问题的功能。

对于您的情况,日期类型不采用典型的 php date() 格式字符串。从查看文档来看here http://symfony.com/doc/current/reference/forms/types/date.html#format我们看到日期格式是由 IntlDateFormatter 类解析的。对于有效的格式请查看这个清单 http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax.

来完成你想要的格式date('d M Y')你会使用:

$builder->add('my_date_field', 'date', array(
    'format'=>'d MMM Y'
));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2:使用具有相同名称的自定义字段类型覆盖内置字段类型 的相关文章

  • PHP使用c++扩展会更快吗?

    我现在正在构建一个推荐系统 一个网站 我想使用PHP作为脚本语言 推荐系统可能会进行复杂的矩阵计算或其他操作 考虑到性能 我想用C 来做矩阵计算或者其他复杂的计算 所以我需要PHP调用C 函数 获取结果并进行其他处理 我知道我可以使用 PH
  • 将加载 gif 添加到简单脚本中

    我对 Javascript 真的很陌生 但我已经有了这个加载 url 内容的脚本 一切都工作正常 我使用按钮上的 onClick 方法调用 plannerSpin 函数 但是当这一切发生时 我将如何显示动画 gif var xmlHttp
  • 连接数据库错误类型:2002:权限被拒绝

    我正在尝试使用以下脚本连接数据库 cxn test php
  • 使用 str_replace 使其仅作用于第一个匹配项?

    我想要一个版本str replace 仅替换第一次出现的 search in the subject 有没有一个简单的解决方案 或者我需要一个 hacky 解决方案 虽然没有它的版本 但解决方案一点也不黑 pos strpos haysta
  • StrRev() 不支持 UTF-8 [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个代码来替换非阿拉伯支持的程序中支持的阿拉伯文本因为我需要在替换后反转文本 但它显示一些垃圾内容而不是想要的结果 这是代码 结果 After Reverse 我需要它是原来的样子 但相反 不是垃圾
  • Yii urlManager URL 中的语言

    我正在尝试使用以下语法向 url 添加语言 http www example com en site page view about http www example com en site page view about 到目前为止 我所
  • 传递表单变量的安全方式

    我正在为我的 WordPress 主题构建联系表单 我希望能够从后端输入接收者地址 目前我正在传递带有隐藏输入字段的变量
  • 使用 Stripe 创建订阅后如何获取费用 ID?

    我在用Stripe作为支付网关 现在有一个大问题困扰着我 我使用下面的代码来创建订阅
  • Codeigniter子域路由

    我正在尝试在 CodeIgniter 框架上运行的网站上设置博客脚本 我想在不对现有网站代码进行任何重大代码更改的情况下执行此操作 我认为创建一个指向另一个控制器的子域将是执行此操作的最干净的方法 我设置新设备所采取的步骤Blog涉及控制器
  • 如何在chart.js中使用JSON数据?

    您好 我一直在尝试使用 MYSQL 数据库中的数据 并使用它们通过 Chart js 创建图形图表 我将数据编码为 JSON 数据 通过 php 文件名 data1 php 现在我需要使用 Jquery 或 javascript 将这些 J
  • 将平面数组拆分为分组子数组,其中包含输入数组中连续键的值

    我有一个数组array diff函数 如下所示 Array 0 gt world 1 gt is 2 gt a 3 gt wonderfull 5 gt in 6 gt our 正如您所看到的 键 3 和键 5 之间有一个间隙 即没有键 4
  • 不要回显 cURL

    当我使用这段代码时 ch curl init url statuses curl exec ch curl close ch 我得到了我想要的东西 但如果我只是使用它 statuses被回显到页面上 我怎样才能阻止这个 将其放在第 2 行
  • php 区分中文和英文字符

    如何区分中文和英文字符for loops 这是代码
  • 美化html输出

    我想知道是否有类或类似的东西可以包含在我的 PHP 页面中以美化 HTML 输出 例如在标签后添加新行并正确缩进 以便我的源代码不仅仅是一行 我知道对于浏览器来说这并不重要 但我希望这样做 我听说过http www php net manu
  • 使用 Hudson 将构建与部署分开

    我们已经开始使用Hudson 目前的工作流程是 本地签出 gt 代码 gt 运行测试 gt 更新 gt 运行测试 gt 提交 Hudson 并不进行轮询 而是只是坐在那里 直到我们实例化构建 然后它 本地结帐 gt 运行 Phing 脚本
  • 未定义的变量:$_SESSION

    我越来越E NOTICE当核心 CakePHP 文件尝试引用从未设置或未设置的会话时 会出现错误 cake libs cake session php line 372 function read name null if is null
  • Twitter URL 编码

    我们即将发起一场小小的推特圣诞竞赛 但我遇到了一些小障碍 要进入 人们需要按以下格式发布推文 user blah blah blah hashtag 目前 我有一个表单 他们可以在其中输入答案 废话 废话 废话 和一个 PHP 脚本 该脚本
  • PHP:如何使用 nl2br() 和 HTML Purifier 保持换行?

    Issue 使用时HTML 净化器 http htmlpurifier org 为了处理用户输入的内容 换行符不会被转换为 br tags 考虑以下用户输入的内容 Lorem ipsum dolor sit amet This is ano
  • 谷歌图片搜索API

    我有一个网站 用户可以在其中提交图片 我想用这些图片自动在 Google 上进行搜索 以尽量减少图片被从其他网站盗用的可能性 我知道 Firefox 扩展 但这需要我右键单击每张图片并等待结果出现 我想自动化这个 我一直在寻找 API 但
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile

随机推荐

  • 什么是 Array.map(Function.call,Number)

    var array1 1 4 9 16 map1 array1 map Function call Number 为什么map1的输出是 0 1 2 3 这个map函数是做什么的 Array prototype map https deve
  • Android 周期性 JobService 永远不会启动

    我有一个 JobService 我想定期启动它 目前 为了进行测试 我正在使用一个简单的 public class SenderService extends JobService Override public boolean onSta
  • 使用 C# 和 BizTalk 将 Excel (xlsx) 转换为 XML

    我已经查看了该论坛上有关类似问题的大多数主题 但尚未找到我正在寻找的内容 我正在尝试编写一个管道组件BizTalk 2013 R2使用 C 简单地转换传入的Excel 2010 xlsx文件到它的裸 基本 XML 表示形式 我不想针对它运行
  • 警告:mysql_num_rows() 期望参数 1 是给定的资源、对象[重复]

    这个问题在这里已经有答案了 q SELECT FROM tbl quevote WHERE que id qid and voteby uid result mysqli gt query q or die mysqli error mys
  • asp.net 下拉列表和视图状态

    我有一个下拉列表 可以触发自动回发并触发 SelectedIndexChanged 更改事件 我已将 viewstate 设置为 true 但由于某种原因 所选值在回发之间不会保留 我已经使用了下拉列表数百次 但似乎无法弄清楚为什么会发生这
  • Angular2 - 如何将字符串枚举与 *ngIf 一起使用

    我该如何通过enum当我使用时到一个函数 ngIf在角度 我有以下代码 export enum RoleType User User Admin Admin 组件功能 public hasAccess role RoleType check
  • 负面清单索引? [复制]

    这个问题在这里已经有答案了 我试图理解下面的代码 node list n for i in xrange 1 numnodes 1 tmp session newobject n append tmp link n 0 n 1 具体来说 我
  • 使用 Java 终止进程

    我想知道如何 杀死 已经启动的进程 我知道 Process API 但我不确定 是否可以使用它来 杀死 已经运行的进程 例如 firefox exe 等 如果可以使用 Process API 您能指出我吗 正确的方向 如果没有 还有哪些其他
  • 通过查询字符串将对象列表传递给 MVC 控制器

    我遇到了一种情况 需要将对象列表传递给 MVC 控制器 但我不确定如何在查询字符串中格式化它 我想要这样做的原因是因为这不是一个 Web 应用程序 它是一个通过查询字符串接受数据并将其路由到执行工作的控制器的 Web 服务 因此 给定一个名
  • SQL Server - 复杂的动态数据透视列

    我有两个表 Controls 和 ControlChilds 父表结构 Create table Controls ProjectID Varchar 20 NOT NULL ControlID INT NOT NULL ControlCo
  • 如何将 __init__ 参数传递给使用 qmlRegisterType 注册的类?

    是否可以使用 qmlRegisterType 函数将 init 参数传递给注册到 QML 的 python 类 如果是这样 当在 QML 中实例化类时它们会被传递吗 我已使用 qmlRegisterType 注册了该类 但没有找到将另一个类
  • FormArray的使用和动态添加控件行

    我在尝试使用 Angular 2 和 Forms 做某事时遇到了麻烦 假设我有一个邀请列表 其中有两个字段 分别用于姓名和电子邮件 以及一个用于添加更多行的按钮 姓名 电子邮件 姓名 电子邮件 添加行 我有点知道您可以使用 FormArra
  • 如何获取

    我有一个FlowPanel 其高度是固定的 实际上是其父级高度的百分比 该高度是固定的 在此面板中 我添加了几个div元素 使用 CSS 我将其高度设置为其父级的 100 我想要做的是使用 javascript 将其宽度设置为等于其高度 我
  • 使用最新的 Android L 支持 v4 进行 Android 活动转换

    我正在为我的应用程序实现材料设计 我发现可以在此处进行活动之间的转换 http android developers blogspot com es 2014 10 implementing material design in your
  • Jquery 错误:需要对象

    这是我在 aspx 页面中的代码
  • android - 如何使文本视图滚动?

    实际上 我在文本视图中显示了一些数据 但它的一半数据超出了屏幕 所以我需要帮助来使文本视图滚动或任何其他可以向下滚动屏幕的东西 任何帮助 将不胜感激 将 TextView 放入 XML 中的 ScrollView 中 如下所示
  • Maven + Cucumber-jvm - 如何根据环境运行不同的功能子集

    我正在努力实现这一目标 我想配置一个 Maven 项目 以便它根据所选配置文件运行不同的 Cucumber 功能子集 dev pro 例如 我有几个功能文件来测试网络导航 使用标签来指定环境 PRO pro Feature Nav Pro
  • 如何使用 gdb“观察”C++ 动态数组?

    考虑以下示例 int size 10 kk new int size for int i 0 i lt size i kk i i delete kk 如何为整个阵列添加监视 我可以一一添加手表 kk 0 kk 1 但既然我知道数组的长度
  • kubectl exec 到多容器 pod 的容器中

    我在登录多容器 Pod 的一个容器时遇到问题 我从以下位置获取容器 IDkubectl describe pod
  • Symfony2:使用具有相同名称的自定义字段类型覆盖内置字段类型

    As per 本文 http symfony com doc current cookbook form create custom field type html在 Symfony 文档上 我创建了一个自定义字段类型 将其设置为servi