Sonata管理软件包:DatePicker范围 [英] Sonata Admin Bundle: DatePicker range

查看:286
本文介绍了Sonata管理软件包:DatePicker范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在使用jQuery UI datepicker的Sonata Admin Bundle中创建一个 doctrine_orm_datetime_range 过滤器?

How would I create a doctrine_orm_datetime_range filter in the Sonata Admin Bundle which uses the jQuery UI datepicker?

我试过以下,但它不起作用:

I tried the following, but it doesn't work:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
        ->add('datumUitgevoerd', 'doctrine_orm_datetime', array('widget' => 'single_text'), null, array('required' => false,  'attr' => array('class' => 'datepicker')))
    ;
}


推荐答案

UPDATED 2016-02-02



如果您使用3. * Symfony,必须使用以下twig配置:

UPDATED 2016-02-02

If you are using 3.* Symfony the following twig configuration must be used:

#app / config / config.yml
twig:
#...
form_themes:
- 'SonataCoreBundle:Form:datepicker.html.twig'

不需要使用自定义日期选择器再说了Sonata包含本机datetime选择器,可以与Twitter Boostrap配合使用。

Using custom date picker is not needed anymore. Sonata contains native datetime picker, that works well with Twitter Boostrap.

要激活日期时间选择器表单字段,您必须添加 SonataCoreBundle:Form:在app / config.yml中的twig表格资源中的datepicker.html.twig

To activate the datetime picker form fields, you have to add SonataCoreBundle:Form:datepicker.html.twig in the twig form resources in app/config.yml:

twig:
    # ...
    form:
        resources:
            - 'SonataCoreBundle:Form:datepicker.html.twig'

您可以使用选择器的形式:

You can use the picker in form:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('createdAt', 'sonata_type_date_picker');
}

在日期时间过滤器中:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
            ->add('createdAt', 'doctrine_orm_datetime', array('field_type'=>'sonata_type_datetime_picker',));
}

或作为日期时间范围过滤器:

or as datetime range filter:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
            ->add('createdAt', 'doctrine_orm_datetime_range', array('field_type'=>'sonata_type_datetime_range_picker',));
}



旧答案



要在 doctrine_orm_datetime 中使用datePicker,请使用以下代码:

OLD ANSWER

To use datePicker in doctrine_orm_datetime use this code:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper->add('datumUitgevoerd', 'doctrine_orm_datetime', array(), null, array('widget' => 'single_text', 'required' => false,  'attr' => array('class' => 'datepicker')));
}

或在中使用datePicker doctrine_orm_datetime_range 代码应该如下所示:

Or to use datePicker in doctrine_orm_datetime_range the code should look like:

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper->add('datumUitgevoerd', 'doctrine_orm_datetime_range', array(), null, array('widget' => 'single_text', 'required' => false,  'attr' => array('class' => 'datepicker')));
}

您应该重载主模板以添加自定义的javascript文件来初始化DatePicker。

And you should overload main template to add your custom javascript file to initialize DatePicker.

#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" ]);
 });

这篇关于Sonata管理软件包:DatePicker范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆