Symfony2 получает информацию о пути URL явно

Скажи, у меня есть URL http://server/mysite/web/app_dev.php/resource/1,
Я делаю GET запрос и соответствующее действие ResourceController::getAction,

В этом действии контроллера, если я позвоню $request->getPathInfo(), это дает мне /resource/1,

Но в том же контроллере, если я создаю объект запроса с URL другого ресурса и вызова getPathInfo() он возвращает более длинную версию.

$request = Request::create('http://server/mysite/web/app_dev.php/another_resource/1');
echo $request->getPathInfo();

OUTPUT >>
/mysite/web/app_dev.php/another_resource/1

Как это возможно сделать getPathInfo() только вернуться /another_resource/1 в этом случае?

ИЛИ ЖЕ

Любой может предложить наиболее безопасный способ преобразования URL-адреса конечной точки. http://server/mysite/web/app_dev.php/another_resource/1 в /another_resource/1 в Symfony2?

Если вам интересно узнать, зачем мне это нужно

Действие контроллера получает некоторые URL-адреса в содержимом запроса. Действие должно проанализировать эти URL, чтобы распознать соответствующий ресурс. Я пытаюсь использовать для $router->match функция для извлечения параметров из URL. Функция соответствия ожидает только /another_resource/1 часть.

2

Решение

Метод request :: create создает новый запрос, который не знает никакой информации о текущем запросе, он возвращает полный URI, потому что он не знает текущий файл скрипта.
пытаться:

$request = Request::create('http://server/mysite/web/app_dev.php/another_resource/1', null, array(), array(), array(), array(
'SCRIPT_NAME' => $this->get('kernel')->getEnvironment() == 'dev' ? 'app_dev.php' : 'app.php',
'SCRIPT_FILENAME' => $this->get('kernel')->getEnvironment() == 'dev' ? 'app_dev.php' : 'app.php',
));
echo $request->getPathInfo();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]