尝试重定向到另一种方法时出现此错误
类型错误:参数1传递给 Symfony \ Component \ HttpFoundation \ ResponseHeaderBag :: __ construct()必须 是类型数组,给定整数,调用 /proyect/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Response.php 在线199
但是我发送了一个空数组
private static final String BASE_URL = "http://xxxxx/";
任何帮助?
答案 0 :(得分:2)
这是HttpFoundation\RedirectResponse
班吗?你的实例看起来不对。
// Symfony\Component\HttpFoundation\RedirectResponse
public function __construct($url, $status = 302, $headers = array())
{
...
}
当需要数组时,您的第三个参数是整数。 RedirectResponse
构造函数调用其父项Response
构造函数,并执行此代码:
// Symfony\Component\HttpFoundation\Response
public function __construct($content = '', $status = 200, $headers = array())
{
$this->headers = new ResponseHeaderBag($headers);
...
}
这是您的错误,当预期值是响应标头数组时,您使用的是整数(UrlGeneratorInterface::RELATIVE_PATH
,等于2)。
正如@Cerad所回答的那样,正确的解决方案是使用redirectToRoute
方法,但它会将您重定向到绝对路径:
return $this->redirectToRoute('persons', array());
或者,如果您仍想将RedirectResponse
与相对路径一起使用:
$url = $this->generateUrl('persons', array(), UrlGeneratorInterface::RELATIVE_PATH);
return new RedirectResponse($url);