[Symfony] Utiliser les références YAML dans la configuration EasyAdmin pour des entités virtuelles
Publié le 23/10/2018 • Actualisé le 23/10/2018
Une des nombreuses fonctionnalités intéressante du bundle EasyAdmin est qu'il permet de définir des filtres pour les entités. On peut donc avoir plusieurs entrées pour une même entité mais pour différents types par exemple. Je voulais partager la configuration de l'une de mes entités principale (dans ce cas Token
) avec les autres entités virtuelles correspondant à la même table. (dans ce cas TokenType2
) sans avoir à dupliquer toute la configuration. Je n'avais jamais utilisé les références YAML jusqu'à maintenant et c'est un cas d'utilisation parfait pour elles. Le code est assez explicite. L'entité virtuelle TokenType2
utilise les trois références de configuration précédemment créées dans la section de l'entité principale Token
.
easy_admin:
# ...
entities:
Token: # ---------------------------------------------------------------
class: AppBundle\Entity\Token
list:
actions: &token.list.actions # <------- 1st reference declaration
- { name: 'tokenShowPublic', icon: 'binoculars', label: 'View' }
# ... long list of actions
fields: &token.list.fields # <------- 2nd reference declaration
- { property: 'id' }
# ... long list of fields
form:
fields: &token.form.fields # <------- 3rd reference declaration
- { type: 'group', label: 'IDs', icon: 'gear' }
- { property: 'id', type: 'integer', type_options: { disabled: true }, css_class: 'col-sm-2'}
# ... long list of fields
TokenType2:
class: AppBundle\Entity\Token
dql_filter: 'entity.tokenType=2'
list:
actions: *token.list.actions # <------- use 1st reference
fields: *token.list.fields # <------- use 2nd reference
form:
fields: *token.form.fields # <------- use 3rd reference
# That's it, no more duplicated configuration!
Plus sur Stackoverflow Snippet aléatoire