我有一个包含项目列表的页面。当您单击一个项目时,您应该到达“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“参数。
你知道我做错了什么吗?
感谢您的时间,
将注释更改为:
/**
* @Route("/project_detail/{id}", name="project_detail")
*/
改变是将$
放在id
变量前面。
您传递的变量是“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")
*/