Closed
Description
Symfony version(s) affected: 2.8 3.4
Description
when using {{ render(controller(something)) }}
in twig, then request locale will not be passed to controller, it will always use defaultLocale, no matter what we define in configuration files.
Possible Solution
We just overwrite InlineFragmentRenderer
service:
fragment.renderer.inline:
class: AppBundle\Twig\AppInlineFragmentRenderer
arguments:
- '@http_kernel'
- '@event_dispatcher'
calls:
- [ setFragmentPath, ['%fragment.path%'] ]
tags:
- { name: kernel.fragment_renderer, alias: inline }
class:
class AppInlineFragmentRenderer extends InlineFragmentRenderer
{
protected function createSubRequest($uri, Request $request)
{
/** @var Request $subRequest */
if($subRequest = parent::createSubRequest($uri, $request)){
$subRequest->setLocale($request->getLocale());
}
return $subRequest;
}
}