我正在学习Symfony 2,我遇到了问题:
我的代码是:
public function showListAction()
{
$ar = $this->getDoctrine()
->getRepository('AcmeHelloBundle:ModGlobalAspectRatio')
->findAll();
return $this->render('AcmeHelloBundle:Test:showList.html.php', array('recs' => $ar));
}
public function updateAction($id, $name)
{
$em = $this->getDoctrine()->getManager();
$ar = $em->getRepository('AcmeHelloBundle:ModGlobalAspectRatio')->find($id);
$ar->setName($name);
$em->flush();
$content = $this->forward('AcmeHelloBundle:Hello:showList');
return new Response($content);
}
我在“更新”中运行我的第一个动作“showList”。
没有return new Response()
我有错误:
The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?
我不明白为什么......它的小傻......
我的主要问题是:
为什么在使用return new Response
之后我在页面顶部显示文字:
HTTP/1.0 200 OK Cache-Control: no-cache Date: Fri, 28 Feb 2014 19:42:48 GMT X-Debug-Token: f0ada0 X-Debug-Token-Link: /symfony2/web/app_dev.php/_profiler/f0ada0
我不需要这些奇怪的字符串..如何删除它?
谢谢!! :)
答案 0 :(得分:1)
只需返回$content
public function updateAction($id, $name)
{
//...
$content = $this->forward('AcmeHelloBundle:Hello:showList');
return $content;
}
修改强>
您的控制器操作应该返回Response
个对象。当您在基本控制器中调用$this->forward();
时,它会返回所需的Response
,而您的控制器操作必须返回该{{1}}。