2013-07-24 8 views
5

devo una classe di amministrazione che ha questa definizione di ListFields:Visualizzazione elenco amministratore Sonata, creare più pulsanti di ordinamento delle intestazioni?

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
      ->addIdentifier('type') 
      ->add('created_at', 'datetime') 
      ->add('updated_at', 'datetime') 
      ->add('created_by') 
      ->add('updated_by') 
      ->add('is_active') 
      ->add('is_deleted') 
      ->add('_action', 'actions', 
        array(
       'actions' => array(
        'view' => array(), 
        'edit' => array(), 
        'delete' => array() 
       ) 
      )) 
    ; 

} 

solo la colonna "tipo" è ordinabile - IE, quando si passa sopra l'intestazione della tabella per "Tipo" si vede un/disc freccia asc e puoi fare clic per riordinare le righe in base a questa colonna.

Come faccio a visualizzarlo su più colonne?

Ho provato ad aggiungere sortable = true ma poi sta provando ad unirsi ad un'altra Entity.

+0

potrebbe aiutare: http://stackoverflow.com/questions/8120787/sonata-admin-bundle-order –

+0

Ho letto che uno, si tratta solo di impostare il campo di ordinamento predefinito. Voglio avere l'ordinamento su più colonne. (Non allo stesso tempo, voglio solo l'opzione per ordinare altre colonne invece della prima) – Jessica

+0

@Jessica Sei riuscito a risolvere il problema .. ?? Se sì per favore, condividilo qui. Sto affrontando lo stesso problema. – GBRocks

risposta

11
# we can sort the related entity properties like. This following condition site is an entity 

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('name') 
     ->add('site',null,array(
      'sortable'=>true, 
      'sort_field_mapping'=> array('fieldName'=>'name'), 
      'sort_parent_association_mappings' => array(array('fieldName'=>'site') 
      ))) 
    ; 
} 

questo è il modo per ordinare le entità correlate nella configurazione dell'elenco. Basta controllare questo Sort list by an entity field

+0

Questo l'ha fatto, grazie. – Jessica

0

Devi aggiungere l'opzione sortable sul campo.

ecco il codice che uso:

protected function configureListFields(ListMapper $listMapper) { 
    $listMapper 
     ->addIdentifier('name') 
     ->add('application', null, array('sortable' => true)) 
     ->add('isActive', null, array('editable' => true)) 
     ->add('_action', 'actions', array(
      'actions' => array(
       'view' => array(), 
       'edit' => array(), 
       'delete' => array(), 
      ) 
     )) 
    ; 
} 

Spero che questo aiuti

+2

"Ho provato ad aggiungere sortable = true ma poi sta provando ad unirsi ad un'altra Entity." – Jessica

+0

Questo è l'errore esatto che ottengo usando quel codice Errore irreversibile Catchable: l'argomento 1 passato a Sonata \ DoctrineORMAdminBundle \ Datagrid \ ProxyQuery :: entityJoin() deve essere dell'array di tipo, dato nullo, chiamato in/vagrant/vendor/sonata -project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Datagrid/ProxyQuery.php sulla riga 140 e definiti in/vagrant/vendor/sonata-project/doctrine-orm-admin-bundle/Sonata/DoctrineORMAdminBundle/Datagrid/ProxyQuery .php line 245 – Jessica

4

Sonata sarà in grado di ordinare un campo se sa che tipo è; se elencherai un'entità correlata, sarà impossibile ordinare.

Ecco l'configureListFields() da un'entità "Evento", che ha un titolo ed è collegato a un'altra entità "City".

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
      ->addIdentifier('title') 
      ->add('city') 
} 

Un collegamento verrà creato per la città, ma non saranno ordinabili, invece l'aggiunta di un campo specifico da "City" funzionerà:

protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->addIdentifier('title') 
     ->add('city.name') 
} 

Ora è ordinabile.

+0

Ma non è più un collegamento alla pagina di modifica per quell'entità. – Jessica

Problemi correlati