我正在升级Symfony项目的奏鸣曲管理使用,从Sonata-Admin 2.2升级到2.3,作为将整个项目升级到Symfony 2.7的一部分。
我们有许多'time‘字段(也就是说,在Doctrine中定义为"time",没有任何有意义的日期组件)。
在Sonata-Admin2.2中,FormMapper的定义很简单:
$formMapper
->tab('tab.general')
->add('start', null, array('label' => 'label.start')
->end()这就给出了“半形式宽度”的小时和分钟选择框的布局,并排排列在表格中:

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

不是很好也不是很有用。
那么,我应该设置什么来获得相同的渲染呢?
我试过使用“sonata_type_datetime_picker”,但这确实坚持要显示日期。这些字段没有日期。仅仅选择时间似乎是不一样的。
发布于 2016-01-08 18:30:09
有同样的问题,并解决了它通过添加我自己的CSS文件的重写。
1)将类添加到窗体字段
->add('start', 'time', array(
'attr' => array('class' => 'fixed-time')
))2)在Resources/public/ CSS /override.css下创建一个新的css文件,其中包含固定时间类的重写。
例如:
.fixed-time .select2-container {
width: auto !important;
}3)然后在包中的某个地方(参考资料/视图)创建一个名为standard_layout.html.twig的新模板,并重写Sonata模板+添加新创建的CSS文件(记得先调用parent(),先加载奏鸣曲代码)。
{% 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中)。
sonata_admin:
templates:
layout: YourBundle::standard_layout.html.twig不要忘记安装新的资产(资产:安装)和清除缓存(从应用程序/缓存中删除选定的文件夹),否则您将不会看到任何更改。
https://stackoverflow.com/questions/34659038
复制相似问题