Я пытаюсь разобраться с псевдонимами (дружественными URL-адресами) и, вероятно, я не делаю это правильно. Что я хочу сделать, так это преобразовать URL-адреса, например «/ blog/my-post-about-something» в «/ posts/23».Невозможно перезаписать pathInfo в запросе Symfony 2
Я написал слушателя для kernel.request события, что делает некоторые операции и модифицирует исходный запрос
class RequestListener
{
public function onKernelRequest(KernelEvent $event)
{
$request = $event->getRequest();
$converted_path = $this->getPathIfAny($request);
if ($converted_path) {
$request->server->set('REQUEST_URI', $converted_path);
}
}
public function getPathIfAny(Request $request)
{
return $somePathOrNull;
}
}
Вся логика работает должным образом и обновляет первоначальный запрос. Проблема в том, что даже если я изменяю «REQUEST_URI», свойство $ pathInfo остается неизменным и указывает на предыдущий путь, поэтому я продолжаю получать 404 ошибки.
Есть ли способ полностью переопределить uri, или я должен попытаться решить проблему по-другому?
Вот определение приемника
my_cmf.request_listener:
class: My\CMFBundle\Event\RequestListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest , priority: -10}
Связанные ссылки к этому вопросу: https://github.com/symfony/symfony/issues/10478
Он работает и решает проблему более чистым способом, спасибо вам большое. – carles