输入字段中的Symfony2错误消息

时间:2012-01-10 10:59:03

标签: annotations symfony validation doctrine-orm

我想在其所在的字段中显示错误消息。我知道如何将错误消息放入字段中,但是如果插入的值不是错误消息本身,我想在重新提交后找到一种动态方法来检查。我使用教义注释。 例如,如果字段是“标题”,则错误消息将是“标题必须填写!”。 所以标题字段不再是空的,我再次点击提交,现在它是有效的。我不想检查每个字段 if $entity->getTitle() == "The title must be filled" ... 我设法做到这一点,没有在树枝和jquery中显示错误div,但我想知道是否有更好的方法从控制器执行此操作?感谢

1 个答案:

答案 0 :(得分:1)

你问的是如何以错误的方式正确地做某事......如果输入值不是你想要处理的值,那么它应该从来没有开始的值。话虽如此,我相信你有理由......

如果表单数据与错误字符串匹配,则需要收听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'的表单类型扩展名附加此侦听器。您还需要使用验证器对当前字段的所有可能验证错误消息进行内省,并通过转换器传递这些消息,然后将结果与事件数据进行比较。