ErrorException: Aviso: header pode não conter mais de um único header, nova linha detectada

Estou tendo problemas para redirect após uma determinada function que envia e-mails! Minha function é:

public function emailAction($emails, $url) { foreach($emails as $email) { $message = \Swift_Message::newInstance() ->setSubject('Updates in Symfony Blog') ->setFrom(array('blog@symfonyblog.com' => 'Symfony Blog')) ->setTo($email["email"]) ->setBody( $this->renderView( 'NEWSBlogBundle:Default:email.txt.twig', array('url' => $url) ) ) ; $this->get('mailer')->send($message); } return $this->redirect($this->newpostAction()); //return $this->redirect($this->generateUrl('NEWSBlogBundle_homepage')); } 

Ele envia os e-mails OK, mas depois, ao redirect, dá o erro:

ErrorException: Aviso: header pode não conter mais de um único header, nova linha detectada na linha C: \ caminho \ para \ webroot \ Symfony \ app \ cache \ dev \ classs.php 3899

  1. na linha C: \ caminho \ para \ webroot \ Symfony \ app \ cache \ dev \ classs.php 3899
  2. em ErrorHandler-> handle (‘2’, ‘Header pode não conter mais de um único header, nova linha detectada’, ‘C: \ path \ to \ webroot \ Symfony \ app \ cache \ dev \ classs.php’, ‘ 3899 ‘, array (‘ this ‘=> object (RedirectResponse),’ name ‘=>’ Localização ‘,’ values ​​’=> array (‘ / app_dev.php / blog ‘, object (ResponseHeaderBag),’ Redirecionamento para / app_dev .php / blog Redirecionando para /app_dev.php/blog . ‘,’ 1.0 ‘,’ 302 ‘,’ Encontrado ‘, nulo),’ valor ‘=> object (ResponseHeaderBag)))
  3. no header (‘Localização: Cache-Control: no-cache Data: Qua, 17 Jul 2013 11:56:17 GMT Localização: /app_dev.php/blog’, false) em C: \ caminho \ para \ webroot \ Symfony \ linha \ app \ cache \ dev \ classs.php 3899
  4. em Response-> sendHeaders () na linha C: \ caminho \ para \ webroot \ Symfony \ app \ cache \ dev \ classs.php 3914
  5. em Resposta-> enviar () na linha C: \ caminho \ para \ webroot \ Symfony \ web \ app_dev.php 27

enquanto eu não alterei nada sobre nenhum “header” (e realmente não sei do que se trata!). Meu app_dev.php é:

 loadClassCache(); Request::enableHttpMethodParameterOverride(); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response); 

Eu tentei duas formas diferentes de redirect ambos (através do roteamento e diretamente chamando o controlador), que dão o mesmo erro, enquanto as páginas são carregadas se eu sou tipo na sua URL!

Não tenho idéia do que é esse erro e como devo corrigi-lo!

Para ser um detalhe, seu problema foi o valor de retorno de $this->newpostAction() . Usualmente, é um object de Response . Mas um redirecionamento espera uma rota uri / que pode ser enviada para o cliente através do header de Location . Um redirecionamento é sempre um lado do cliente. Mas você pode usar ->forward('AcmeBundle:Demo:index') para encaminhar internamente para outra ação do controlador. Nesse caso, o URL no cliente não é alterado.

Você desencadeia uma verificação de sanidade da Symfony. Ao enviar headers com header() , teoricamente você poderia enviar muitos headers com uma chamada de function. O Symfony impede você acidentalmente fazê-lo ao passar algo com um caractere de nova linha como o URL de destino.