コントローラーに次のコードがあります。
$form = $this->createFormBuilder()
->add('email', 'email', array(
'constraints' => array(new MaxLength(array('limit' => 255, 'message' => 'email.maxlength'))),
'required' => true,
'attr' => array('oninvalid' => "setCustomValidity('" . $this->get('translator')->trans('email.oninvalid', array(), 'validators') . "')",
'placeholder' => $this->get('translator')->trans('email.placeholder', array(), 'validators'),)
))
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
$formData = $form->getData();
if ($form->isValid()) {
$formData->getEmail();
$em = $this->getDoctrine()->getManager();
$rep = $em->getRepository('FrontendAccountBundle:User');
$q = $rep->createQueryBuilder('u')
->join('u.state', 's')
->where('u.email = :email')
->andWhere('s.id = :sid')
->setParameters(array('email' => $email))
->getQuery();
try {
$user = $q->getSingleResult();
} catch (\Doctrine\Orm\NoResultException $e) {
//return $this->redirect($this->generateUrl('frontend_account_unknown_email'));
}
}
return $this->render('FrontendAccountBundle::send_new_activation_link.html.php', array(
'form' => $form->createView()
));
新しいアクションを作成する代わりに、データベースでメールアドレスが不明であるという形式でエラーをスローする方法はありますか?
または、ドキュメントで何かを見逃しましたか?