2016-09-12 1 views

Répondre

1

Je pense que vous pouvez remplacer the getIdParameter method dans votre classe d'administration:

public function getIdParameter() 
{ 
    return 'name'; 
} 
+0

essayé, le travail ne marche pas aussi simple que cela, on dirait que je dois remplacer le contrôleur, admin et modèle pour le faire fonctionner? :/ –

+0

Désolé d'entendre cela, je ne l'ai pas essayé moi-même, donc à ce stade, vous en savez plus que moi. – greg0ire

0

routes sont configurées à partir de la méthode configureRoutes de votre classe d'administration.

Voici comment j'ajouté un itinéraire personnalisé pour le « envoyer » l'action de mon « emailadmin »:

protected function configureRoutes(RouteCollection $collection) 
{ 
    parent::configureRoutes($collection); 
    $collection->add('send', $this->getRouterIdParameter().'/send'); 
} 

Le premier paramètre de add() est le nom de l'action et le second est le chemin du route. De cette façon, vous pouvez configurer vos routes personnalisées. Si vous effacez la collection ou n'appelez pas parent::configureRoutes, vous pouvez redéfinir toutes les routes par défaut.

Plus d'informations détaillées de la sonate doc: https://sonata-project.org/bundles/admin/master/doc/reference/routing.html

Un travail autour de changer le paramètre id pourrait être de remplacer getIdParameter() et trouver le moyen de personnaliser l'action dans le CRUDController afin que les articles sont interrogés par nom ou même à la fin de la journée, les entités sont toujours interrogées par leur identifiant (unique), donc si vous voulez que le nom de l'entité soit le paramètre id dans l'url, vous pouvez soit créer vos propres actions et routes personnalisées. besoin de faire de la propriété name l'identifiant de votre entité (et de la rendre unique bien sûr) ou d'utiliser quelque chose comme apache mod_rewrite pour rewr ite vos urls

Hope qui aide