2015-02-18 2 views
2

Я использую Symfony и Bootstrap для персонального проекта.Styling datetime symfony/bootstrap

Я создал форму с полем «datetime». Twig генерирует мне несколько входных данных (день, месяц, год, час, минута), но это не совсем «удобно».

Я хотел бы знать, как я могу стилизацию входа для создания DateTimePicker, как один здесь: http://tarruda.github.io/bootstrap-datetimepicker/

Вот некоторый код: - FormType:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('dateStart'); 
     $builder->add('dateEnd'); 
    } 
  • Twig:

    {{ form_widget(form.dateStart)}} 
    {{ form_errors(form.dateStart) }} 
    
    {{ form_widget(form.dateEnd)}} 
    {{ form_errors(form.dateEnd) }} 
    

Как я мог это сделать?

Спасибо за вас отвечает

ответ

2

Установить поле widget как "single_text" и html5 опции к ложным:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('dateStart', 'datetime', array(
     'widget' => 'single_text', 
     'html5' => false, 
    )); 
    //... 
} 

На шаблоне веточку:

<div id="datetimepicker1" class="input-append date"> 
    {{ form_widget(form.dateStart, {attr: { 
     'data-format': "dd/MM/yyyy hh:mm:ss" }, 
    }) }} 
    <span class="add-on"> 
     <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i> 
    </span> 
</div> 

При установке опции html5 ложь это избегайте использования встроенного календаря HTML 5, другими словами, это приведет к тому, что тип ввода = «текст» скорее будет вводить tipe = «datetime». От Symfony docs:

Если установлено значение True (по умолчанию), он будет использовать тип HTML5 (дата, время или дату и время) для визуализации поля. Если установлено значение false, он будет использовать тип текста. Это полезно, если вы хотите использовать собственный набор данных JavaScript, для которого часто требуется тип текста вместо типа HTML5.

+0

Хорошо, теперь у меня есть 5 входных текстов :), но нет сборщика данных: -/ – carndacier

+0

@carndacier, извините, это была опечатка. Я изменил свой пост – felipsmartins

+0

Большое спасибо. Ответ наполовину на мою проблему, но я попробую настроить его. Просто вопрос: почему вы помещаете «html5» в false? – carndacier