У меня есть маршрут / трек / Johnny + Cash / There + You + Go и мне нужны параметры маршрута artist_name = "Johnny Cash", name = "There You Go" (без плюсов)
Для этого я добавил слушателя в MainBundle \ Resources \ config \ services.yml
services: app.listener.location: class: Melofania\MainBundle\LocationListener scope: request tags: - { name: kernel.event_listener, event: kernel.controller } arguments: []
И создал файл MainBundle \ LocationListener.php
namespace Melofania\MainBundle; use Symfony\Component\HttpKernel\HttpKernel; class LocationListener { public function onKernelController($event) { if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) { return; } $request = $event->getRequest(); $parameters = $request->attributes->get('_route_params'); foreach($parameters as &$parameter) { $parameter = str_replace('+', ' ', $parameter); } $request->attributes->set('_route_params', $parameters); } }
Но параметры маршрута в контроллерах не изменились. Кто-нибудь может объяснить эту ошибку? Спасибо за ответы.