![](/img/trans.png)
[英]Customizing error messages for symfony valid constraint with collection type
[英]Symfony 4 - Customizing form error messages
我的网站上有一个简单的表格。 提交和数据库入口工作完美,但问题是错误信息显示,我想使用两种方式,不确定它们是否也可以一起工作。
我想显示在表单类文件中声明的错误消息:
->add('firstname', TextType::class, array(
'required' => true,
'label' => 'Name(s)',
'attr' => array(
'class' => 'form-control',
'data-required-message' => 'Please enter patient name!'
),
'constraints' => array(
new Constraints\NotBlank()
)))
和/或
我想显示在实体类文件中声明的错误:
/**
* @var string
* @ORM\Column(type="string",name="first_name", length=50)
* @Assert\NotBlank
*/
protected $firstName;
目前我没有上述两种情况,但我想要做的是通过控制器通过以下方式获取错误:
/**
* @Route("/patient/add", name="patient_add")
*/
public function add(Request $request)
{
$formOptions = array(
'FacilityRepositoryObject' => $this->getDoctrine()->getRepository(Facility::class),
'SFGuardUserObject' => $this->getDoctrine()->getRepository(SFGuardUser::class)
);
$errors = array();
$patientAddForm = $this->createForm(PatientForm::class, null, $formOptions);
$patientAddForm->handleRequest($request);
if($patientAddForm->isSubmitted()) {
$formData = $patientAddForm->getData();
if($patientAddForm->isValid()) {
$this->addPatient($formData);
} else {
$errors = $patientAddForm->getErrors();
}
}
return $this->render('patient/add.html.twig', array(
'addForm' => $patientAddForm->createView(),
'errors' => $errors;
));
}
我需要三样东西:-
我读到的另一种方式是在序列化“$patientAddForm->getErrors()”方法并让输出显示在树枝文件中时使用规范化器,但这只返回一个空数组,我还在某处阅读了这需要一个标准化器/序列化器来从中获取错误。
请帮忙! :)
问候, Mzimhle
这可以帮助您:
private function getErrorsFromForm(FormInterface $form)
{
$errors = array();
foreach ($form->getErrors() as $error) {
$errors[] = $error->getMessage();
}
foreach ($form->all() as $childForm) {
if ($childForm instanceof FormInterface) {
if ($childErrors = $this->getErrorsFromForm($childForm)) {
$errors[$childForm->getName()] = $childErrors;
}
}
}
return $errors;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.