2014-09-01 7 views
0

Я хотел бы знать, как ограничить значения списка поля формы datetime минут в Symfony2. Объяснение, как показано ниже:Как ограничить значения списка полей даты и времени формы в Symfony2?

Когда я нажимаю на поле со списком в области поля даты и времени минут в форме, а список значения будут отображаться, как вы можете видеть на скриншоте ниже:

enter image description here

Как вы можете заметить выше, значения списка полей минут составляют от 00 до 59 (поскольку я поместил формат datetime как: 'dd/MM/yyyy H: i'). Кстати, это код, класс формы:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 

     ->add('title','text') 
     ->add('start','datetime',array(
     'input' => 'datetime', 

     'format' => 'dd/MM/yyyy H:i',)) 
     ->add('end','datetime',array(
     'input' => 'datetime', 

     'format' => 'dd/MM/yyyy H:i',)) 

     ->add('location','text') 
     ->add('description','text') 

    ; 
} 

И это HTML код формы:

<html> 
    <head> 
     <title> Wkayet </title> 
     <link rel="shortcut icon" href="{{asset('bundles/ikprojhome/images/icon-WKAYET.png')}}"> 
     <link rel="stylesheet" type="text/css" href="{{asset('bundles/ikprojhome/css2/css.css')}}"/> 
     <script src='{{asset('bundles/ikprojhome/lib/jquery.min.js')}}'></script> 

    </head> 
    <body> 
    <center> 
     <div id="container"> 
      <div id="header"> 

      </div> 
      <div id="content"> 
       <table width="100%" height="100%" align="center"> 
        <tr> 
         <td> 
          {% for x in groupe%} 
    <form id="EventForm" action='{{path('ikproj_groupe_homepaeventsAdd',{id:x['id']})}}' method="POST" {{ form_enctype(form) }} onsubmit="javascript:parent.jQuery.fancybox.close();"> 
    <!--<form id="EventForm" action='{{path('ikproj_groupe_homepaeventsAdd',{id:x['id']})}}' method="POST" {{ form_enctype(form) }} >--> 
           {% endfor %} 
           {{ form_errors(form) }} 
           <table align="center"> 
            <tr> 
             <td class="separation"><label for="groupname">Titre</label></td> 
             <td> 
            <!--<input id="titre" name="titre" required="required" type="text" size="50"/> --> 
             <div> 
              {{ form_errors(form.title) }} 

              {{ form_widget(form.title) }} 
              </div> 
             </td> 
            </tr> 
            <tr> 
             <td class="separation"><label for="debut">Début</label></td> 
             <td><!--<select id="debut" name="debut" class="select"></select>--> 
              <div> 
              {{ form_errors(form.start) }} 

              {{ form_widget(form.start) }} 
              </div> 


             </td> 
            </tr> 
            <tr> 
             <td class="separation"><label for="fin">Fin</label></td> 
             <td><!--<select id="fin" name="fin" class="select"></select>--> 
              <div> 
              {{ form_errors(form.end) }} 

              {{ form_widget(form.end) }} 
              </div> 

             </td> 
            </tr> 

            <tr> 
             <td class="separation"><label for="lieu">Lieu</label></td> 
             <td> 

             <div> 
              {{ form_errors(form.location) }} 

              {{ form_widget(form.location) }} 
              </div> 

             </td> 
            </tr> 
            <tr> 
             <td id="description" valign="top" class="separation"><label for="description">Description</label></td> 
             <td><textarea id="ikproj_groupebundle_eventsgroupe_description" name="ikproj_groupebundle_eventsgroupe[description]" rows="5" cols="40"></textarea> 



             </td> 
            </tr> 
            <tr> 
             <td colspan="2" align="center" id="button" valign="bottom"><input class="button" type="submit" value=""/></td> 
            </tr> 
           </table> 
             {{form_widget(form._token)}} 
          </form> 
         </td> 
        </tr> 
       </table> 
      </div> 
     </div> 
    </center> 
</body> 
</html> 

Итак, мой вопрос: как я могу сделать поле минут содержит некоторые конкретные значения? (например, он просто содержит эти два значения: 00 и 30). Возможно ли это сделать?

ответ

1

Обратите внимание, что Symfony's TimeType - это в основном расширенное поле выбора, и DateTimeType, которое вы используете повторно, TimeType. Таким образом, вы должны быть в состоянии передать в качестве параметра 'minutes' так:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('title', 'text') 
     ->add('start', 'datetime', array(
     'input' => 'datetime', 
     'format' => 'dd/MM/yyyy H:i', 
     'minutes' => array(
      0, 
      30 
     ) 
     )) 
     ->add('end', 'datetime', array(
     'input' => 'datetime', 
     'format' => 'dd/MM/yyyy H:i', 
     'minutes' => array(
      0, 
      30 
     ) 
     )) 
     ->add('location', 'text') 
     ->add('description', 'text') 
    ; 
} 

Вот документ, который объясняет это: http://symfony.com/doc/current/reference/forms/types/time.html#minutes

+1

Большое спасибо господин KIX, он работал :) !! –

+1

@ НадимАкрам, рад слышать :) – kix