[英]Display constraint validator error messages in Symfony
我不知道如何显示我的约束验证器错误消息。
错误被正确检测到,因为如果我在表单中输入 null 或负值,则会显示“错误”一词(参见 twig 文件),但不会显示验证器的错误消息。
不,我不想直接在我的验证上管理我的错误消息。yaml。
不,我不想直接在我的表单上管理我的错误消息。
我需要在我的验证文件夹中正确执行此操作,因为我会有很多。
src/Validator/Constraints/Type.php:
<?php
namespace App\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
class Type extends Constraint
{
public $numericPositiveNotNull = "Merci de renseigner une valeur numérique, positive et non nulle";
public function validatedBy()
{
return \get_class($this).'Validator';
}
}
src/Validator/Constraints/TypeValidator.php
<?php
namespace App\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class TypeValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
if (!is_int($value)) {
$this->context->buildViolation($constraint->numericPositiveNotNull)
->addViolation();
}
}
}
验证器/验证.yaml
App\Entity\Donation:
properties:
weight:
- App\Validator\Constraints\Type: ~
捐赠控制器.php
[...]
return $this->render('/donation/donationFormCreate.html.twig', [
'form' => $form->createView(),
'formHasErrors' => $form->isSubmitted() && !$form->isValid(),
]);
捐赠FormCreate.html.twig
{% if formHasErrors %}
Erreur
{{ form_errors(form) }}
{% endif %}
[...]
您在那里没有收到任何错误消息,因为您只显示适用于整个表单/已验证 class 的“全局”错误。
但是,您的自定义验证器已附加到特定属性,因此当该验证失败时,您的消息也将附加到该属性。 即看到你的错误信息,你必须打电话
{{ form_errors(form.weight) }}
这旨在用于特定表单字段而不是整个表单旁边。
请参阅https://symfony.com/doc/current/form/form_customization.html#form-errors-form-view以供参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.