php - “@ParamConverter 注释未找到 App\Entity\User 对象”
问题描述
当我尝试访问它时,我的一条路线出现问题,出现此错误:“@ParamConverter 注释未找到 App\Entity\CompanyUser 对象”
很多人有同样的问题,但我能看到的解决方案都不能解决我的问题。
我的功能编辑:
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
/**
* @Route("/{id}/edit", name="company_user_edit", methods={"GET","POST"}, requirements={"id"="\d+"})
*/
public function edit(Request $request, UserPasswordEncoderInterface $passwordEncoder, CompanyUser $user): Response
{
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
$reset_password_form = $this->get('form.factory')->create(CompanyResetPasswordType::class, $user);
$reset_password_form->handleRequest($request);
if ($reset_password_form->isSubmitted() && $reset_password_form->isValid()) {
$this->passwordEncoder->isPasswordValid($this->getUser(), $request->get('password'));
$oldPassword = $request->request->get('reset_password')['oldPassword'];
// Si l'ancien mot de passe est bon
if ($passwordEncoder->isPasswordValid($user, $oldPassword)) {
$newEncodedPassword = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
$user->setPassword($newEncodedPassword);
$em->persist($user);
$em->flush();
$this->addFlash('notice', 'Succeed to change your password');
return $this->redirectToRoute('company_show', ['id' => $user->getCompany()->getId()]);
} else {
$reset_password_form->addError(new FormError('Old password is not valid'));
}
}
$edit_form = $this->createForm(CompanyUserType::class, $user);
$edit_form->handleRequest($request);
if ($edit_form->isSubmitted() && $edit_form->isValid()) {
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('company_show', ['id' => $user->getCompany()->getId()]);
}
return $this->render('user/edit.html.twig', [
'user' => $user,
'edit_form' => $edit_form->createView(),
'reset_password_form' => $reset_password_form->createView(),
]);
}
谢谢你的帮助 !
解决方案
您可以像这样覆盖 ParamConverter
/**
* @Route("/{id}/edit", name="company_user_edit", methods={"GET","POST"}, requirements={"id"="\d+"})
* @ParamConverter("id", class="CompanyUser", options={"id": "id"})
*/
推荐阅读
- json - 将json映射提取到结构中的更好方法
- android-animation - 如何以编程方式更改 MotionLayout 中 KeyAttribute 的旋转
- linux - 使用 -exec cp 覆盖复制文件
- python - 如何在 Python 中比较两条 3D 曲线?
- android - HAXM 安装不会检测到启用的 VT-x
- google-compute-engine - Google Cloud Compute Engine 中的各种 SSH 方法有什么区别?
- c# - 在请求管道的分支中提供 SPA 时,我的 SPA 文件出现 404 错误。如何使我的静态文件可用于我的 SPA?
- python - 尽管分配了 .iloc,但 Pandas 数据框值设置为带有复制警告
- powershell - 如何在 csom 上下文中获取重试标头?
- react-native - 条形码扫描仪输入带摄像头