如何发送 flash 消息以形成错误字段(Symfony)
How to send flash message to form error field (Symfony)
这是我的注册表单代码:
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$user = new User();
$form = $this->createForm(RegisterType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
$user->setPlan('1');
$datetime = new \DateTime();
$datetime->modify('+30 day');
$user->setExpiration($datetime);
$user->setActive('0');
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
$this->addFlash('success', 'Your account has been created. Check your inbox for verification e-mail.');
}
return $this->render('home/register.html.twig', array(
'form' => $form->createView(),
));
}
在将用户保存到数据库的最后,设置了 Flash 消息。有什么方法可以通过表单错误字段显示该消息吗?
不可以,您不能向表单的错误添加即显消息。通过 class API 操作表单错误的唯一方法是 public function addError(FormError $error)
但如您所见,它只接受 FormError 类型的参数而不是字符串。
这是我的注册表单代码:
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$user = new User();
$form = $this->createForm(RegisterType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$password = $passwordEncoder->encodePassword($user, $user->getPlainPassword());
$user->setPassword($password);
$user->setPlan('1');
$datetime = new \DateTime();
$datetime->modify('+30 day');
$user->setExpiration($datetime);
$user->setActive('0');
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
$this->addFlash('success', 'Your account has been created. Check your inbox for verification e-mail.');
}
return $this->render('home/register.html.twig', array(
'form' => $form->createView(),
));
}
在将用户保存到数据库的最后,设置了 Flash 消息。有什么方法可以通过表单错误字段显示该消息吗?
不可以,您不能向表单的错误添加即显消息。通过 class API 操作表单错误的唯一方法是 public function addError(FormError $error)
但如您所见,它只接受 FormError 类型的参数而不是字符串。