Я хотел бы добавить тип ввода цвета HTML5 (поддерживается только Chrome на данный момент) в форме Symfony2. Я создал новый тип цвета, который унаследует от типа текста:Symfony2 Пользовательская форма Поле Тип HTML5 цвет
<?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, а вводит текст.
Есть ли способ переопределить тип, чтобы он отображал тип = «цвет»?
Я также проверил fields.html.twig и есть эта линия, которая должна работать нормально:
{% set type = type|default('text') %}
Если я изменить по умолчанию («текст») по умолчанию («цвет»), все входные type = "text" изменяются на type = "color".
Спасибо за вашу помощь,
Глупый вопрос, но вы использовали 'цвет' по второму параметру в методе добавления поля? – adam187
Да, я делаю :) -> добавить ('hex', 'color', array ( 'label' => 'Level color' )) – pjehan
в случае, если кто-то ищет этот ответ сейчас и используя Symfony 3.4+, проверьте документацию, они добавили ColorType http://symfony.com/doc/current/reference/forms/types/color.html –