Я получил эту ошибку при попытке перенаправить на другой метод
Type error: Argument 1 passed to Symfony\Component\HttpFoundation\ResponseHeaderBag::__construct() must be of the type array, integer given, called in /proyect/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Response.php on line 199
Но я отправляю пустой массив
return new RedirectResponse('persons', array(), UrlGeneratorInterface::RELATIVE_PATH);
Любая помощь?
Это хороший ответ, но что делать, если нужен относительный путь?
Затем вы передаете ему относительный URL-адрес. Классу все равно. И еще раз, если вы находитесь в контроллере, используйте $ this-> generateUrl (), который дает вам возможность абсолютного или относительного.






Это класс 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);
Если вы находитесь в контроллере, вы, вероятно, захотите использовать return $ this-> redirectToRoute ('people'); В противном случае RedirectResponse :: __ construct (? String $ url, int $ status = 302, array $ headers = array ())