Symfony 4:控制器要求您为“$id”参数提供一个值
Symfony 4 : Controller requires that you provide a value for the "$id" argument
我有一个包含项目列表的页面。当您单击一个项目时,您应该会到达 "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,link 到 "project_detail" 页面:
<a href="{{ path('project_detail', {'id':project.id }) }}">
<div>...</div>
</a>
我通过点击得到这个link: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")
*/
我有一个包含项目列表的页面。当您单击一个项目时,您应该会到达 "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,link 到 "project_detail" 页面:
<a href="{{ path('project_detail', {'id':project.id }) }}">
<div>...</div>
</a>
我通过点击得到这个link: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")
*/