2014-10-04 18 views
5

Ho cercato di cercare online una soluzione definitiva a questa domanda, ma non c'è davvero nessuna soluzione concreta per i neofiti.Esportare una relazione uno sull'altro admin

Ho una voce che ha molti EntryListing. Nel mio EntryAdmin listMapper, io comodamente posso elencare le voci di una dichiarazione semplice come

->add('listings') 

che restituisce semplicemente le liste come definito nella funzione EntryListing __toString().

C'è un modo per ottenere lo stesso durante l'esportazione dei dati da overiding le getExportFields() funziona come di seguito:

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

vostro aiuto sarà molto apprezzato

risposta

7

c'è un altro lavoro intorno a te puoi aggiungere una proprietà nella tua entità che otterrà tutte le voci relative alla voce e nella funzione getter restituire __toString() di quelle correlate, ho avuto lo stesso scenario per gli ordini e ho bisogno dell'elenco se i prodotti associati all'ordine lo hanno fatto in questo modo creando exportProducts in orders entità

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); 
} 

E per classe di amministrazione i definita exportProducts struttura in getExportFields() come

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

In csv scaricabile ciascun ordine contiene la lista dei prodotti sotto Products cella come virgole elenco

separato
Problemi correlati