2014-09-18 14 views
5

yılında arandığını Ne sütunlar.Sonata-Yönetici küresel serach Sonata Yönetici aramalarda küresel arama seçeneği bunlarla ilişkili Yönetici Sınıfları olan tüm (doctrine2) varlıkları yalak

Ne anlamaya çalışıyorum küresel arama tarafından arandığını sütunları nasıl yapılandırılacağı olduğunu. Müşterilerimin web sitesinde, tüm VARCHAR alanlarına (doktrin tipi: string) bakılıyor gibi görünüyor ve METİN alanları (doktrin türü: metin) değil.

kimse bu yüzden biliyor mu ve nasıl değiştirilebilir?

cevap

4

sonat yöneticisinin belgelerine göre küresel arama modülü show_in_dashboard true olarak ayarlanır yani tüm görünür yöneticileri arayacaktır sözü var ve sadece yapılandırılmış yöneticisinin configureDatagridFilters() işlevinde olan sadece bu alanlarda arayacaktır, Yani alanları eklendi admin sınıfının $datagridMapper nesnesine Sonata admin'in global aramasında arama yapılacaktır. Örneğin

Eğer haber yöneticisi ve configureListFields() size 3 alanları

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('id') 
     ->add('name') 
     ->add('createdDate'); 
} 

Ve configureDatagridFilters() yılında sonuçları

filtrelemek için sadece isim alanı var olması
protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
{ 
    $datagridMapper->add('name'); 
} 

Yani Sonata sadece adı alanında arayacaktır haber yöneticinin bu yönetici için bir filtre yapılandırmış çünkü Yani bu filtre de adı alanına hariç aranır yönetici ve başka hiçbir alan için küresel aramada kullanılan


Docs göre

"genel arama" son kullanıcı gösterge tablosunda tüm görünür yöneticilerden üzerinde yineleme ve anahtar kelime için arama yapmanızı sağlar. Geçerli uygulaması çok basittir, bir dize ile ilgili her filtre varsayılan olarak aranabilir. sonat küresel aramayla ilgili

ADMIN BUNDLE ~ GLOBAL SEARCH


Diğer bilgiler yönetici sınıflar üzerinde

arama dolaşır ve gerçek olarak ayarlanmış global_search seçeneği ile filtrenin arayın. Eğer kullanıyorsanız SonataDoctrineORMBundle herhangi bir metin filtresi varsayılan olarak true ayarlanacaktır. dizeye ayarlanmış varsayılan sonat tarafından

otomatik gibi $datagridMapper 'ın add() saha seçeneği ayarlayarak aramada kullanılmak üzere ayrıca alanını zorlayabilir küresel arama içerir alan açıklama arar aşağıda

->add('name', null, array('global_search' => true), null, array() 
Sonata aramak ne sütunlar üzerinde belirlemek için daha kullanır gibi görünüyor, çünkü hızlı ve ayrıntılı cevapta M Halid Cüneyt için

Sonata Search

+0

sayesinde, ancak (henüz) işime yaramaz. Ben sonat Yorum varlık yorum alanına aramak istediğiniz ve ben CommentAdmin içinde dataGridFilters için bu alanı eklemiş: 'korumalı fonksiyon configureDatagridFilters (DatagridMapper $ datagridMapper) { $ datagridMapper - '> ekleyin (kullanıcı ') -> (ekleme' yorumunu ') ancak benim sonuçlarında ' , ben sadece tüm açıklamaları (filtreleme yok olsun) – vitrus

+0

@vitrus benim güncellenen cevabım sorununuzu –

+0

M Halid Jnaid çözer umut bkz, cevabın bana doğru yönde yardımcı oldu, aşağıdaki satırı ile çalıştım: '-> ekle ('comment', null, array ('global_search' => tru e), null, array()) (bu nedenle "seçenekler" muhtemelen beşinci yerine üçüncü argümandır). Cevabınızı güncelleyebilir, böylece onaylayabilirim (böylece diğer insanlar bu konu için kullanılabilir). – vitrus