2014-10-04 38 views
5

Bu soruya kesin bir çözüm bulmak için çevrimiçi arama yapmaya çalıştım ancak orada yeni başlayanlar için gerçekten somut bir çözüm yok.Sonata admin üzerinde bir çok ilişkiyi dışa aktarma

Birçok EntryListing'a sahip bir Girişim var. Benim EntryAdmin listMapper yılında ben rahatça basitçe EntryListing __toString() fonksiyonu tanımlanan listelerini döndürür

->add('listings') 

gibi basit bir açıklama ile girdileri listeleyebilirsiniz.

public function getExportFields() 
{ 
    return array('name','tel','email','deviceType','postedOn','createdAt','facilitator','listings'); 
} 

Kişisel Yardım çok takdir edilecektir

cevap

7

çevrenizdeki başka iş var:

getExportFields() aşağıdaki gibi fonksiyonları overiding verileri dışa aktarırken aynı başarmak için bir yol var mı ilgili tüm giriş listelerini alacağınız bir varlık ekleyebilir ve ilgili olanlar için __toString() getter fonksiyonunda, siparişler için aynı senaryoyu aldım ve siparişle ilişkili ürünler varsa bu listeye ihtiyacım var.içinde exportProducts oluşturarak İşletme

protected $exportProducts; 

public function getExportProducts() 
{ 
    $exportProducts = array(); 
    $i = 1; 
    foreach ($this->getItems() as $key => $val) { 
     $exportProducts[] = $i . 
      ') Name:' . $val->getProduct()->__toString()() . 
      ' Size:' . $val->getProductsize() . 
      .../** Other properties */; 
     $i++; 
    } 
    return $this->exportProducts = join(' , ', $exportProducts); 
} 

Ve virgül listesini

ayrılmış her sipariş Products hücre altındaki ürünlerin listesini içerir indirilen CSV

public function getExportFields(){ 
    return array(
     'Products'=>'exportProducts', 
     ....// Other properties 
     ); 
} 

olarak getExportFields() içinde exportProducts özelliği tanımlanan sipariş yöneticisi sınıfında 0