我正在升级Symfony项目的Sonata Admin使用,从Sonata-Admin 2.2升级到2.3,作为将整个项目升级到Symfony 2.7的一部分。
我们有许多'时间'字段(即在Doctrine中定义为“时间”,没有有意义的日期组件。)
在Sonata-Admin 2.2中,FormMapper定义很简单:
$formMapper
->tab('tab.general')
->add('start', null, array('label' => 'label.start')
->end()
并且以下列形式给出了“半形宽度”小时和分钟选择框的布局:
但Sonata-Admin 2.3正在向他们展示超过两行:
不太好或不可用。
那么,我应该设置什么来获得相同的渲染?
我尝试过使用'sonata_type_datetime_picker',但这确实是在坚持显示日期。这些字段没有日期。只是选择时间似乎没有等价物。
答案 0 :(得分:2)
有同样的问题并通过添加我自己的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(Resources / views)中的某个地方创建一个名为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
不要忘记安装新资产(资产:安装)和清除缓存(从app / cache中删除所选文件夹),否则您将看不到任何更改。