gpt4 book ai didi

symfony - Sonata-admin 表单中的时间选择器(无日期)

转载 作者:行者123 更新时间:2023-12-05 04:14:41 25 4
gpt4 key购买 nike

作为将整个项目升级到 Symfony 2.7 的一部分,我正在将 Symfony 项目的 Sonata Admin 使用从 Sonata-Admin 2.2 升级到 2.3。

我们有许多“时间”字段(即,在 Doctrine 中定义为“时间”,没有有意义的日期部分。)

在 Sonata-Admin 2.2 中,FormMapper 的定义很简单:

$formMapper
->tab('tab.general')
->add('start', null, array('label' => 'label.start')
->end()

这给出了“half-form-width”小时和分钟选择框的布局,形式并排:

enter image description here

但是 Sonata-Admin 2.3 将它们显示为两行:

enter image description here

不太好用。

那么,我应该如何设置才能获得相同的渲染效果?

我试过使用“sonata_type_datetime_picker”,但它确实坚持显示日期。这些字段没有日期。只是选择时间似乎没有等价物。

最佳答案

有同样的问题并通过添加我自己的 CSS 文件进行覆盖解决了这个问题。

1) 将类添加到您的表单域

->add('start', 'time', array(
'attr' => array('class' => 'fixed-time')
))

2) 在 Resources/public/css/override.css 下的包中创建一个新的 CSS 文件,并由 fixed-time 类覆盖

例如:

.fixed-time .select2-container {
width: auto !important;
}

3) 然后在你的 bundle 的某处(资源/ View )创建一个名为 standard_layout.html.twig 的新模板并覆盖 Sonata 模板 + 添加新创建的 CSS 文件(记住先调用 parent(),先加载 sonata 代码) .

{% extends 'SonataAdminBundle::standard_layout.html.twig' %}

{% block stylesheets %}
{{ parent() }}
<link rel="stylesheet" href="{{asset('bundles/yourbundle/css/override.css')}}" type="text/css" media="all"/>
{% endblock %}

4) 然后将您的 standard_layout twig 模板注册到 Sonata admin(在您的 config.yml 中)。

sonata_admin:
templates:
layout: YourBundle::standard_layout.html.twig

不要忘记安装新 Assets (assets:install) 和清除缓存(从 app/cache 中删除选定的文件夹),否则您将看不到任何变化。

关于symfony - Sonata-admin 表单中的时间选择器(无日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659038/

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