问题
I'm upgrading a Symfony project's Sonata Admin usage, from Sonata-Admin 2.2 to 2.3, as part of upgrading the overall project to Symfony 2.7.
We have a number of 'time' fields (that is, defined in Doctrine as "time", with no meaningful date component.)
In Sonata-Admin 2.2 the FormMapper definition was simple:
$formMapper
->tab('tab.general')
->add('start', null, array('label' => 'label.start')
->end()
and that gave the layout of "half-form-width" Hour and Minute selection boxes, side by side, in the form:
But Sonata-Admin 2.3 is showing them over two full lines:
which is not so nice or useable.
So, what should I be setting to get the same rendering?
I've tried using the 'sonata_type_datetime_picker' but that is really insistent on displaying a date. These fields do not have a date. There seems to be no equivalent for just picking the time.
回答1:
Had the same issue and solved it by adding my own CSS file for overrides.
1) Add class to your form field
->add('start', 'time', array(
'attr' => array('class' => 'fixed-time')
))
2) Create a new CSS file in your bundle under Resources/public/css/override.css with overrides by fixed-time class
For example:
.fixed-time .select2-container {
width: auto !important;
}
3) Then somewhere in your bundle (Resources/views) create a new template called standard_layout.html.twig and override Sonata template + add newly created CSS file (remember to call parent() first, to load sonata code first).
{% 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) Then register your standard_layout twig template into Sonata admin (in your config.yml).
sonata_admin:
templates:
layout: YourBundle::standard_layout.html.twig
Do not forget to install new assets (assets:install) and clear cache (remove selected folder from app/cache), otherwise you will not see any change.
来源:https://stackoverflow.com/questions/34659038/time-picker-no-date-in-a-sonata-admin-form