Symfony, Admin Generator, personalizzare la lista


Symfony Admin Generator crea una action executeList in automatico basandosi sul model di riferimento.

Il comportamento predefinito è quello di recuperare tutti i record (paginandoli). Poi, le operazioni di “filtro” sono demandate all’utente il quale avrà nella parte destra a disposizione i filtri (definiti nella sezione filters).

Se si vuole recuperare fin dall’inizio un sottoinsieme di record (quindi alterando il comportamento di default) è possibile definire quale metodo della classe xxxTable si farà carico della definizione dei parametri di base per la query.

Un esempio pratico: nella lista non si vogliono vedere mai i record relativi ad un determinato status.

Nel file generator.yml nella sezione config list definire il parametro table_method (configurazione per Doctrine):

    config:
      list:
        title:   Suggestion list
        table_method: retrieveBackendSuggestionList

Nella classe Table del Model implementare il metodo definito nella configurazione dal parametro table_method:

public function retrieveBackendSuggestionList(Doctrine_Query $q) {
    $rootAlias = $q->getRootAlias();
    $q->andWhere($rootAlias.".status <> ?", 0);
    return $q;
  }
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: