2013-01-21 13 views
7

Sonata admin datagridfilters dosyasında datetime veya tarih filtreleri nasıl ayarlanır?Sonata yönetici süzgeçlerinde datetime ve date için biçim nasıl ayarlanır symfony2

Ben düzenleme formunun

->add('createdAt', 'datetime', array('label' => 'Created at', 'disabled' => true, 
        'input' => 'datetime', 
        'date_widget' => 'choice', 
        'time_widget' => 'choice', 
        'date_format' => 'MMM d, y',)) 

->add('deadline', 'date', array('label' => 'Deadline', 'disabled' => true, 
        'input' => 'datetime', 
        'widget' => 'choice', 
        'format' => 'MMM d, y')) 

için çalışır sonat yönetici filtreler, aşağıdaki yapmak istiyorum ama çalışmıyor (veya seçenekleri göz ardı edilir) doctrine_orm_date kullanarak filtrelerde kullanıldığında ve

doctrine_orm_datetime

Bunu yapmak zorunda kalmamın nedeni, benim sunucumda (centos 5.2, php 5.3.20), ay alanının zaman damgası olarak işlenmesi, ancak dev makinemde mükemmel bir şekilde işlenmesidir. Bu konuyla ilgili birkaç soru ama gerçek bir düzeltme yok. Bu 2 bağlantı benim sorunumu ana sorunumu tanımlar - örn. symfony2 - date choice input renders timestamp instead of month name, http://iqwen.net/question/155068

yüzden sorunu nereye düzeltmek için bir yolu var mı 3 şeyi sonat yönetici filtreler

  • datetime/tarih alanları için biçimi seçeneğini nasıl ayarlanacağı
    1. bilmek istiyorum ay linux env üzerinde zaman damgası olarak görünür ben her alanın yanındaki biçimi belirtmek zorunda kalmamak için ben Symfony2/sonat admin tarih/saat alanı için bir küresel biçim de ayarlayabilirsiniz nasıl

    Wiill ile ilgili her türlü yardım büyük beğeni topluyor.

  • +0

    [this] (http://stackoverflow.com/a/10433153/1553481) veya [this] 'e bakabilirsiniz (http://stackoverflow.com/a/16289056/1553481). Satıcı paketlerini 2.2'ye güncelledikten sonra – likeitlikeit

    +0

    , bu sorun kendini çözdü. – dagger

    cevap

    1

    Bu şekilde her yapabilirsiniz:

    ->add('createdAt', 'doctrine_orm_callback', 
           array(
           'label' => 'Created At', 
           'callback' => function($queryBuilder, $alias, $field, $value) { 
               if (!$value['value']) { 
                return; 
               } 
               $time = strtotime($value['value']); 
               $inputValue = date('Y-m-d', $time); 
               $queryBuilder->andWhere("DATE($alias.createdAt) <= :CreatedAt"); 
               $queryBuilder->setParameter('CreatedAt', $inputValue); 
               return true; 
               }, 
           'field_type' => 'text' 
          ), null, array('attr' => array('class' => 'datepicker'))) 
    

    TARİH işlevi DQL ile tanımlamak bir atıldı.