[Symfony pro tips] Placer des valeurs par défaut dans un Filter Admin Generator

Publié le 13/09/2010
Par Damien
173 mots
symfony

Précédemment sur le blog : Désactiver temporairement Timestampable avec Doctrine

Imaginons que vous avez un module auto-généré, avec Doctrine tien. Sur votre modèle, vous avez un boolean, du genre « is_hidden » (exemple en bois je sais) et vous voulez que les lignes avec ce boolean à true ne remontent jamais dans la recherche.

Il y a plusieurs façon de faire. Hacker le FilterForm (boooouuuhhh), étendre l’action avec ce genre de crasse (boooouuhhhh) :

$filters = $this->getFilters();
$filters['is_hidden'] = 0;
$this->setFilters($filters);

Et j’en passe.

Alors qu’avec n’importe quel module auto-généré, il y a un dossier lib, avec une classe *GeneratorConfiguration. Tien si on regardait ce qu’elle étend ? Base*GeneratorConfiguration qui étend sfModelGeneratorConfiguration. 

Wah trop bien, plein de méthodes trop utiles pour mes projets ! Mais c’est noël ! Trop COOL ! C’est trop fré ! Je vais me régaler o/ woot etc.

On met donc ça dans notre *GeneratorConfiguration et c’est fini.

public function getFilterDefaults()
{
return array('is_hidden' => 0);
}

Alors, c’était dur ? 

Non je suis pas aigris, j’éduque les foules.