我有一个包含项目列表的页面。当您单击一个项目时,您应该到达“ project_detail”页面。
这是我的MainController,具有到project_detail的路由:
/**
* @Route("/project_detail/{$id}", name="project_detail")
*/
public function project_detail($id)
{
$current_project = $this->getDoctrine()
->getRepository(Project::class)
->find($id);
return $this->render('main/project_detail.html.twig', [
'current_project' => $current_project,
]);
}
这是我的模板project_list,其中包含指向“ project_detail”页面的链接:
<a href="{{ path('project_detail', {'id':project.id }) }}">
<div>...</div>
</a>
我通过单击以下链接获得此链接:website / project_detail /%7B%24id%7D? id = 1
所以我想它理解页面应该显示ID号为1的项目。但是,它一直显示此错误: Controller“ App \ Controller \ MainController :: project_detail()”要求您为“ $ id”参数提供一个值。
您是否知道我在做什么错?
感谢您的时间,
答案 0 :(得分:2)
将注释更改为此:
/**
* @Route("/project_detail/{id}", name="project_detail")
*/
更改是将$
放在id
变量前面。
答案 1 :(得分:2)
您传递的变量是“ current_project”,这意味着您需要更改:
<a href="{{ path('project_detail', {'id':project.id }) }}">
<div>...</div>
</a>
到
<a href="{{ path('project_detail', {'id':current_project.id }) }}">
<div>...</div>
</a>
还要记住要解决此问题:
/**
* @Route("/project_detail/{$id}", name="project_detail")
*/
与此
/**
* @Route("/project_detail/{id}", name="project_detail")
*/