我有一个包含一些输入字段的搜索表单。表单位于/search/
,并通过POST传输。
如果表单被触发,我想将用户转发到/search/{one_parameter_from_form}
。应对参数进行编码和清理,以便在网址中使用。
我尝试了以下内容:
$app->post('/search',
function (Request $request) use($app)
{
return $app->redirect('/search/' . str_replace(' ', '-', $request->get('q')));
});
但是我必须自己“清理”请求参数,并且我无法访问重定向控制器中的所有其他请求参数。
1)如何访问转发中的所有POST参数?
2)我如何获得干净的请求 - 网址?
答案 0 :(得分:1)
我是Symfony用户,但看起来好像你可以创建一个子请求并执行它就好像它是一个前锋。
段:
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
$subRequest = Request::create('/');
$response = $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);
答案 1 :(得分:0)
您可以使用$app->redirect('/', 303);
。状态代码303使浏览器尝试使用GET进行重定向URL而不是POST。