AGGIORNATO 2016-02-02
Se si utilizza 3. * Symfony la seguente configurazione ramoscello deve essere utilizzato:
# app/config/config.yml twig: # ... form_themes: - 'SonataCoreBundle:Form:datepicker.html.twig'
AGGIORNATO 2015-05-04
Non è più necessario utilizzare il selettore di date personalizzato. Sonata contiene selettore datetime nativo, che funziona bene con Twitter Boostrap.
Per attivare i campi del modulo datetime picker, è necessario aggiungere SonataCoreBundle:Form:datepicker.html.twig
nelle risorse di forma ramoscello in app/config.yml:
twig:
# ...
form:
resources:
- 'SonataCoreBundle:Form:datepicker.html.twig'
È possibile utilizzare il selettore in forma:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('createdAt', 'sonata_type_date_picker');
}
nel filtro datetime:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('createdAt', 'doctrine_orm_datetime', array('field_type'=>'sonata_type_datetime_picker',));
}
o come filtro intervallo datetime:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('createdAt', 'doctrine_orm_datetime_range', array('field_type'=>'sonata_type_datetime_range_picker',));
}
risposta Old
Per utilizzare DatePicker in doctrine_orm_datetime
uso di questo codice:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add('datumUitgevoerd', 'doctrine_orm_datetime', array(), null, array('widget' => 'single_text', 'required' => false, 'attr' => array('class' => 'datepicker')));
}
O, per usare DatePicker nel doctrine_orm_datetime_range
il codice dovrebbe essere simile:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add('datumUitgevoerd', 'doctrine_orm_datetime_range', array(), null, array('widget' => 'single_text', 'required' => false, 'attr' => array('class' => 'datepicker')));
}
E voi dovrebbe sovraccaricare il modello principale per aggiungere il file javascript personalizzato per inizializzare DatePic ker.
#File app/config.yml
sonata_admin:
title: Admin
title_logo: /logo_admin.png
templates:
layout: AcmeDemoBundle::standard_layout.html.twig
#...another Sonata and Symfony settings...
{# File src/Acme/Bundle/DemoBundle/Resources/views/standard_layout.html.twig #}
{% extends 'SonataAdminBundle::standard_layout.html.twig' %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('bundles/acmedemo/js/jquery_admin.js') }}" type="text/javascript"></script>
{% endblock %}
//File web\bundles\acmedemo\js\jquery_admin.js
jQuery(document).ready(function(){
jQuery.datepicker.setDefaults(jQuery.datepicker.regional[ "" ]);
jQuery(".datepicker").datepicker(jQuery.datepicker.regional[ "en" ]);
});
Ho seguito le tue istruzioni e tutto funziona come previsto fino a quando non premo il pulsante "Filtro". Ricevo un errore di convalida per i campi della data "Questo valore non è valido." l'unica cosa che sto facendo attualmente è che sto usando "input_type" => "timestamp", a parte che è lo stesso. Il widget date_range predefinito funziona perfettamente per me. Qualche idea, perché? – Onema
La chiave del mio problema era impostare il formato corretto: ''format' => 'M/d/y'' – Onema
Grazie! La soluzione funziona perfettamente. – carzogliore