2017-10-09 6 views

Répondre

0

Pic rapide au niveau du code: oui. La redirection permanente se produit à l'intérieur du I18nRouter (et le contrôleur de redirection qui est appelé là-bas)

https://github.com/schmittjoh/JMSI18nRoutingBundle/blob/master/Router/I18nRouter.php#L258

Vous pouvez remplacer la I18nRouter (méthode le match() doit être le bit correspondant) et changer $permanent-false

Pour plus d'informations sur le remplacement dans Symfony, vérifiez https://symfony.com/doc/current/bundles/override.html

+0

Merci pour votre réponse rapide. Je pourrais faire cela mais alors je dois copier le code de cette méthode très longue et ce n'est pas enregistrer pour des mises à jour (parce que c'est une méthode privée dans le I18Router.php). Y a-t-il un autre moyen facile et économique de le faire? – Mojo

+0

@Mojo Remplacez redirectAction dans le contrôleur et étendez-le (par exemple, comme si vous écrasiez les contrôleurs dans le FOSUserBundle), mais changez le permanent $ avant de faire le parent :: redirectAction() – Koalabaerchen

+0

C'est une bonne idée. Mais je n'arrive pas à faire fonctionner l'Override. J'ai créé un nouvel ensemble qui implémente la fonction suivante: 'public function getParent() {return 'JMSI18nRoutingBundle'; } ' Ensuite, j'ai créé un contrôleur qui étend le RedirectController de l'ensemble et inséré le' redirectAction() 'pour le remplacer. Là, je change le '$ permanent' et j'appelle' return parent :: redirectAction() 'avec la variable ne mais rien ne se passe. J'ai également inséré un 'die()' pour le tester mais le site fonctionne comme toujours. – Mojo