gpt4 book ai didi

php - "App\Entity\User object not found by the @ParamConverter annotation"

转载 作者:行者123 更新时间:2023-12-05 04:01:23 24 4
gpt4 key购买 nike

当我尝试访问其中一个路由时出现问题,出现此错误:“@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"})
*/

关于php - "App\Entity\User object not found by the @ParamConverter annotation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55516176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com