2013-10-25 54 views
1

因此,我有一個使用Symfony2 + Sonata Admin Bundle + Doctrine 2製作的簡單數據庫的GUI。該數據庫將包含數十億行,因此日期存儲爲時間戳節省空間),但在GUI中顯示爲日期(例如:2013/10/17 10:05:06)。除了按日期過濾以外,一切都在GUI中起作用。我在擴展Admin的類中嘗試了各種配置,方法configureDatagridFilters()。我無法讓它工作......你能幫助我嗎?Symfony2和Sonata Admin Bundle - 顯示爲日期的篩選時間戳

回答

0

我發現周圍的工作,我認爲它可以在其他許多情況下是有用的:

所以在擴展admin.php的類,我們有方法configureDatagridFilters()。有一個可以加一個輸入像

 ->add('startDateFrom', 'doctrine_orm_callback', array(
      'label' => 'Start Date from', 
      'callback' => function($queryBuilder, $alias, $field, $value) { 
     if (!$value['value']) { 
      return; 
     } 
     $inputValue = $this->dateStringToTimestamp($value['value']); 
     $queryBuilder->andWhere("{$alias}.startDate >= :startDateFrom"); 
     $queryBuilder->setParameter('startDateFrom', $inputValue); 
     return true; 
    }, 
      'field_type' => 'text' 
       ), null, array('attr' => array('class' => 'calendar', 
    ))) 

正如你所看到的,通過這種方式,我們希望我們可以操縱字段值。我希望它也能幫助別人:)

+0

你是如何在文本框內呈現日曆控件的? –

+0

@faisalnasir使用Trent Richardson的jQuery timepicker插件。這就是爲什麼我通過「日曆」類,以便能夠用datetimepicker部件替換文本字段:) 喜歡: $('。calendar')。datetimepicker({timeFormat:'HH:mm:ss',dateFormat :「yy-mm-dd」,changeYear:true,yearRange:'2013:2033'}); –