首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奏鸣曲-管理表格中的时间选择器(无日期)

奏鸣曲-管理表格中的时间选择器(无日期)
EN

Stack Overflow用户
提问于 2016-01-07 15:33:08
回答 1查看 2.3K关注 0票数 3

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

我们有许多'time‘字段(也就是说,在Doctrine中定义为"time",没有任何有意义的日期组件)。

在Sonata-Admin2.2中,FormMapper的定义很简单:

代码语言:javascript
复制
$formMapper
   ->tab('tab.general')
   ->add('start', null, array('label' => 'label.start')
   ->end()

这就给出了“半形式宽度”的小时和分钟选择框的布局,并排排列在表格中:

但Sonata-Admin2.3正向他们展示两行文字:

不是很好也不是很有用。

那么,我应该设置什么来获得相同的渲染呢?

我试过使用“sonata_type_datetime_picker”,但这确实坚持要显示日期。这些字段没有日期。仅仅选择时间似乎是不一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-08 18:30:09

有同样的问题,并解决了它通过添加我自己的CSS文件的重写。

1)将类添加到窗体字段

代码语言:javascript
复制
->add('start', 'time', array(
    'attr' => array('class' => 'fixed-time')
))

2)在Resources/public/ CSS /override.css下创建一个新的css文件,其中包含固定时间类的重写。

例如:

代码语言:javascript
复制
.fixed-time .select2-container {
    width: auto !important;
}

3)然后在包中的某个地方(参考资料/视图)创建一个名为standard_layout.html.twig的新模板,并重写Sonata模板+添加新创建的CSS文件(记得先调用parent(),先加载奏鸣曲代码)。

代码语言:javascript
复制
{% 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小枝模板注册到Sonata (在config.yml中)。

代码语言:javascript
复制
sonata_admin:
    templates:
        layout: YourBundle::standard_layout.html.twig

不要忘记安装新的资产(资产:安装)和清除缓存(从应用程序/缓存中删除选定的文件夹),否则您将不会看到任何更改。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34659038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档