Parlons de votre projet
PHP Symfony Sonata

Symfony 4 / Sonata : Créer une deuxième interface avec la même entité

Nous allons voir ici comment créer une deuxième interface alors que l’entité est déjà utilisée dans une interface CRUD.Le problème des interfaces générées automatiquement est qu&rsq...

Contrôles de compatibilité Symfony et Sonata

Nous allons voir ici comment créer une deuxième interface alors que l’entité est déjà utilisée dans une interface CRUD.

Le problème des interfaces générées automatiquement est qu’elles utilisent le nom de l’entité pour construire les routes.
Si on configure une deuxième interface avec une entité déjà utilisée on se retrouvera avec la même route que la première.

Et pour cela nous allons utiliser ces deux paramètres dans notre classe d’admin pour surcharger les valeurs par défaut.
Imaginons que nous utilisons l’entité « modele » nous pourrons utiliser le terme « modele2 » (ou toto, ce que vous voulez en fait)

    protected $baseRouteName = 'admin_vendor_app_modele2';
    
    protected $baseRoutePattern = 'modele2';

N’oubliez pas de bien vider le cache pour que les nouvelles routes soient bien prises en compte.

Contrôles de compatibilité Symfony et Sonata

Adapter l’exemple à la version installée

Les exemples Symfony et Sonata restent attachés aux versions indiquées dans l’article. Symfony 4.x et Symfony 6.2 ne sont plus maintenus : pour un projet actuel, utilisez une branche maintenue et la documentation correspondant exactement à vos dépendances.

php bin/console about
composer show symfony/framework-bundle sonata-project/admin-bundle

Avant de reprendre le code, contrôlez les signatures, les services, les routes et les templates concernés. Ajoutez ensuite un test fonctionnel couvrant les autorisations, le code HTTP et le résultat visible.

Référence : versions Symfony maintenues.

Partager cet article