Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Twig path function fails for internationalized routes #30010

Closed
@JeroenDeDauw

Description

@JeroenDeDauw

Symfony version(s) affected: 4.2.2

Description
The Twig path function fails for internationalized routes when rendering a template on NotFoundHttpException.

How to reproduce

1/3: Have an internationalized route (routes.yaml):

mypage:
    path:
        en: /en/english
        de: /de/german
    controller: App\Controller\SimplePageController::page

2/3: Have an EventListener that renders a 404 template:

class ExceptionListener {

	private $twig;

	public function __construct( \Twig_Environment $twig ) {
		$this->twig = $twig;
	}

	public function onKernelException( GetResponseForExceptionEvent $event ) {
		if ( $event->getException() instanceof NotFoundHttpException ) {
			$response = new Response(
				$this->twig->render( 'errors/404.html.twig' ),
				404
			);

			$event->setResponse( $response );
		}
	}
}

3/3: Call the path function with the name of the internationalized route in the template:

{{ path('mypage') }}

The path function works fine for routes that do not use the i18n feature like this one:

index:
    path: /
    controller: App\Controller\IndexController::index

I did some digging though the Symfony code though did not find the issue. Might be related to #27872

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions