Symfony2自定义表单字段类型HTML5颜色

Symfony2自定义表单字段类型HTML5颜色,html,forms,symfony,symfony-forms,Html,Forms,Symfony,Symfony Forms,我想在Symfony2表单中添加HTML5颜色输入类型(目前仅由Chrome支持)。 我创建了一个从文本类型继承的新颜色类型: <?php namespace Marquis\WebsiteBundle\Form\Type; use Symfony\Component\Form\AbstractType; class ColorType extends AbstractType { public function getParent() { retur

我想在Symfony2表单中添加HTML5颜色输入类型(目前仅由Chrome支持)。 我创建了一个从文本类型继承的新颜色类型:

<?php

namespace Marquis\WebsiteBundle\Form\Type;

use Symfony\Component\Form\AbstractType;

class ColorType extends AbstractType
{
    public function getParent()
    {
        return 'text';
    }

    public function getName()
    {
        return 'color';
    }
}

?>
但是,在显示表单时,输入标记如下所示:

<input type="text" id="entity_hex" name="entity[hex]" value="#4D89BF">
如果我将default('text')更改为default('color'),则所有输入type=“text”都将更改为type=“color”


感谢您的帮助,

您还必须为您的领域定义新的主题块

{% form_theme form _self %}

{% block color_widget %}
{% spaceless %}
    {% set type = 'color' %}
    {{ block('form_widget_simple') }}
{% endspaceless %}
{% endblock %}


愚蠢的问题,但是你在add field方法的第二个参数上使用了'color'吗?是的,我使用:)->add('hex','color',array('label'=>'Level color'))如果有人现在正在寻找这个答案,请使用Symfony 3.4+,检查文档,他们已经添加了一个ColorType
{% set type = type|default('text') %}
{% form_theme form _self %}

{% block color_widget %}
{% spaceless %}
    {% set type = 'color' %}
    {{ block('form_widget_simple') }}
{% endspaceless %}
{% endblock %}