2013-11-07 2 views
5

Я хотел бы добавить тип ввода цвета 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".

Спасибо за вашу помощь,

+0

Глупый вопрос, но вы использовали 'цвет' по второму параметру в методе добавления поля? – adam187

+0

Да, я делаю :) -> добавить ('hex', 'color', array ( 'label' => 'Level color' )) – pjehan

+1

в случае, если кто-то ищет этот ответ сейчас и используя Symfony 3.4+, проверьте документацию, они добавили ColorType http://symfony.com/doc/current/reference/forms/types/color.html –

ответ

Смежные вопросы