1)我做了这个控制器功能:
/**
* @Route("/add", name="add" )
*/
public function add_question()
{
return $this->render("add.html.twig",[]);
}
2)当我转到http://127.0.0.1:8000/add时,Symfony返回此错误:
The controller must return a response (null given). Did you forget to add a
return statement somewhere in your controller?
3)我有一堆其他的控制器,它们具有相同的结构并且可以正常工作。
4)每当我要添加新的Controller时,都会引发此错误。
5)我试图返回Response对象-也不起作用。
编辑: 我的 config / routes / annotations.yaml 文件:
controllers:
resource: ../../src/Controller/
type: annotation
答案 0 :(得分:0)
好的,我找到了解决方法。
我的项目中有几个控制器。 其中之一几乎位于文件的顶部,并具有以下路由:
/**
* @Route("/{question_id}", name="questions" ) <--QUESTION ROUTE
*/
控制器的逻辑是这样的:
function GenerateQuestionPage($question_id)
1find question in my database whose $id is equal to question_id.
2a. If you find such question then render proper twig template.
2b. If You don't find such question then you echo "No such question found";
每当我想转到其路由定义在以下 GenerateQuestionPage Controller定义以下的页面时,Symfony都认为我试图将Question Route与 非数字的question_id。然后它正在数据库中搜索这样的问题,但显然找不到,因此它没有返回Response对象。
我的解决方案是将GenerateQuestionPage控制器重新定位到文件底部。