Symfony2 明确获取 URL 的路径信息
Symfony2 get path info of URL explicitely
说,我有一个 URL http://server/mysite/web/app_dev.php/resource/1
。
我正在做一个 GET
请求,对应的操作是 ResourceController::getAction
.
在这个控制器操作中,如果我调用 $request->getPathInfo()
,它会给我 /resource/1
。
但是在同一个控制器中,如果我使用另一个资源的 url 创建一个 Request 对象并调用 getPathInfo()
它 return 是一个更长的版本。
$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()
变成 return 只有 /another_resource/1
?
或
任何人都可以建议在 Symfony2 中将端点 URL http://server/mysite/web/app_dev.php/another_resource/1
转换为 /another_resource/1
的最安全方法是什么?
如果你有兴趣知道我为什么需要这个
控制器操作正在接收一些 URL 请求内容。该操作需要解析那些 URL 以识别相应的资源。我正在尝试使用 $router->match
函数从 URL 中检索参数。匹配函数只需要 /another_resource/1
部分。
Request::create 方法创建一个不知道当前请求的任何信息的新请求,它 return 完整的 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();
说,我有一个 URL http://server/mysite/web/app_dev.php/resource/1
。
我正在做一个 GET
请求,对应的操作是 ResourceController::getAction
.
在这个控制器操作中,如果我调用 $request->getPathInfo()
,它会给我 /resource/1
。
但是在同一个控制器中,如果我使用另一个资源的 url 创建一个 Request 对象并调用 getPathInfo()
它 return 是一个更长的版本。
$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()
变成 return 只有 /another_resource/1
?
或
任何人都可以建议在 Symfony2 中将端点 URL http://server/mysite/web/app_dev.php/another_resource/1
转换为 /another_resource/1
的最安全方法是什么?
如果你有兴趣知道我为什么需要这个
控制器操作正在接收一些 URL 请求内容。该操作需要解析那些 URL 以识别相应的资源。我正在尝试使用 $router->match
函数从 URL 中检索参数。匹配函数只需要 /another_resource/1
部分。
Request::create 方法创建一个不知道当前请求的任何信息的新请求,它 return 完整的 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();