gpt4 book ai didi

datepicker - 奏鸣曲管理包 : DatePicker range

转载 作者:行者123 更新时间:2023-12-03 11:31:02 27 4
gpt4 key购买 nike

我将如何创建 doctrine_orm_datetime_range使用 jQuery UI 日期选择器的 Sonata Admin Bundle 中的过滤器?

我尝试了以下方法,但不起作用:

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

最佳答案

不再需要使用自定义日期选择器。 Sonata 包含 native 日期时间选择器,可以很好地与 Twitter Boostrap 配合使用。

要激活日期时间选择器表单字段,您必须启用加载包含相关代码的 Twig 模板。

配置

对于 Symfony 4 :

# config/packages/twig.yaml
twig:
# ...
form_themes:
- '@SonataCore/Form/datepicker.html.twig'

对于 Symfony 3 :
# app/config/config.yml
twig:
# ...
form_themes:
- 'SonataCoreBundle:Form:datepicker.html.twig'

对于 Symfony 2 :
# app/config.yml:
twig:
# ...
form:
resources:
- 'SonataCoreBundle:Form:datepicker.html.twig'

用法

您可以在表单定义中使用选择器:

    use Sonata\CoreBundle\Form\Type\DatePickerType;

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

在日期时间过滤器中:

    use Sonata\CoreBundle\Form\Type\DatePickerType;

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('createdAt', 'doctrine_orm_datetime', ['field_type'=> DatePickerType::class]);
}

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

    use Sonata\CoreBundle\Form\Type\DateTimeRangePickerType;

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('createdAt', 'doctrine_orm_datetime_range', ['field_type'=> DateTimeRangePickerType::class]);
}

旧答案

doctrine_orm_datetime 中使用 datePicker使用此代码:

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

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

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。

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

关于datepicker - 奏鸣曲管理包 : DatePicker range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com