我想在该字段中显示错误消息。我知道如何将错误消息输入字段,但是我想找到一种在重新提交后检查后检查的动态方法,如果插入的值不是错误消息本身。我使用学说注释。例如,如果字段是“标题”,则错误消息将是“标题必须填写!”。因此,标题字段不再为空,我再次单击提交,现在有效。我不想检查每个字段if $entity->getTitle() == "The title must be filled" ...我设法在树枝和jQuery中显示未显示错误的DIV进行了操作,但是我想知道是否有更好的方法可以从控制器中执行此操作?谢谢

有帮助吗?

解决方案

您正在问如何以错误的方式正确执行某些操作...如果输入值不是您想要处理的值,那么它应该永远不会成为一个值。话虽如此,我确定您有自己的理由...

你需要听 FormEvents::BIND_CLIENT_DATA 并清除表单数据与您的错误字符串相匹配。

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('title');
    $builder->get('title')->addEventListener(
        FormEvents::BIND_CLIENT_DATA,
        function(FilterDataEvent $event)
        {
            if ('The title must be filled' == $event->getData()) {
                $event->setData('');
            }
        },
    );

如果您想在全球应用此行为,则需要使用扩展的表单类型扩展名来附加此侦听器 'field'. 。您还需要使用验证器为当前字段提供所有可能的验证错误消息,然后通过转换器将其传递,然后将结果与事件数据进行比较。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top