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

5

我希望在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';
    }
}

?>

并创建了一个新的服务来使用它:
marquis_website.form.type.color:
          class: Marquis\WebsiteBundle\Form\Type\ColorType
          tags:
              - { name: form.type, alias: color }

然而,当表单显示时,输入标签看起来像这样:
<input type="text" id="entity_hex" name="entity[hex]" value="#4D89BF">

因此,它没有使用新的HTML5颜色输入,而是使用文本输入。

是否有一种方法可以覆盖类型,使其显示type="color"?

我还检查了fields.html.twig文件,其中应该可以正常工作的是这一行:

{% set type = type|default('text') %}

如果我将默认值 ('text') 更改为默认值 ('color'),那么所有输入类型为 "text" 的将更改为类型 "color"。

感谢您的帮助,


这是一个愚蠢的问题,但你在添加字段方法的第二个参数中使用了“颜色”吗? - adam187
是的,我会 :) ->add('hex', 'color', array( 'label' => '等级颜色' )) - pjehan
1
如果有人现在正在寻找Symfony 3.4+的答案,请查看文档,他们已经添加了ColorType。http://symfony.com/doc/current/reference/forms/types/color.html - Fernando Caraballo
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接