symfony4 - Symfony 4:控制器要求您为“$id”参数提供一个值
问题描述
我有一个包含项目列表的页面。当您单击一个项目时,您应该会到达“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”参数。
你知道我做错了什么吗?
感谢您的时间,
解决方案
您传递的变量是“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")
*/
推荐阅读
- sql-server-2008 - 如何创建视图并将数据插入其中
- performance - MonetDb 在具有 20K 列的大表上的性能
- powershell - 通过 Powershell 脚本弹出 USB 磁盘
- python - ModuleNotFoundError:没有名为“skimage”的模块
- php - 你怎么能用变量进行内部连接
- java - Maven 未在 MANIFEST.MF 中生成主类条目
- mysql - 如何从一个表中选择一列,从另一个表中选择另一列
- ajax - 使用 AJAX 向 MVC 控制器发送数据
- python - 如何解决 ValueError:真值
- android - 如何解决 admob 收入问题