2016-01-07 25 views
1

作爲將整體項目升級到Symfony 2.7的一部分,我正在將Symfony項目的Sonata管理用法從Sonata-Admin 2.2升級到2.3。Sonata-admin表格中的時間選取器(無日期)

我們有許多「時間」字段(即,在原則定義爲「時間」,沒有有意義的日期部分。)

在奏-管理員2.2 FormMapper定義很簡單:

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

,這給了的「半形式寬度」小時和分鐘的選擇框的佈局,並排,形式爲:

enter image description here

但是索納塔 - 管理2.3是他們展示了兩個完整的線路:

enter image description here

這不是很好或可用。

那麼,我應該設置什麼來獲得相同的渲染?

我試過使用'sonata_type_datetime_picker',但這確實堅持顯示日期。這些字段沒有日期。只是選擇時間似乎沒有相應的東西。

回答

2

有相同的問題,並通過添加我自己的CSS文件覆蓋來解決它。

1)固定時間類添加類到你的表單字段

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

2)根據資源/公/ CSS/override.css與覆蓋創建組合中的一個新的CSS文件

例如:

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

3)然後在某處的束(資源/視圖s)創建一個名爲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樹枝模板到索納塔管理員(在你的config.yml中)。

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

不要忘記安裝新的資產(資產:安裝)和清除緩存(刪除應用程序/緩存選定的文件夾),否則你不會看到任何變化。

+0

謝謝!這驗證了我最終找到的解決方法,結合了https://github.com/sonata-project/SonataAdminBundle/issues/2571和http://stackoverflow.com/questions/19828729/how-to-override-a的提示-CSS-的-奏鳴曲管理員束式,Symfony2的 – jrg

相關問題