2012-03-25 124 views
2

我已经安装了一个自定义验证器,用于检查生成的slug是否是唯一的。自定义验证器不会输出错误消息

现在我测试的验证,它似乎验证工作(形式没有得到持续),但我没有得到一个错误信息......

class Unique extends Constraint 
{ 
public $message = 'The value of "%property%" already exists.'; 
public $property; 

public function getDefaultOption() 
{ 
    return 'property'; 
} 

public function getRequiredOptions() 
{ 
    return array('property'); 
} 

public function validatedBy() 
{ 
    return 'loc_article_validator_unique_alias'; 
} 

public function getTargets() 
{ 
    return self::CLASS_CONSTRAINT; 
} 

}

的表单错误通过{{form_rest(form)}}在树枝中呈现

所以我发现了这个问题。 问题在于Custom Constraints错误无法通过foreach呈现。他们必须打通

{{ form_errors(form) }} 

呈现我剩余的问题现在:

1)我怎样才能使自定义约束错误像所有其他错误?

2.)为什么扩展Constrain的Custom类需要CustomValidator服务的别名?

+0

您是否找到了答案? – Flukey 2012-04-05 15:53:21

回答

1

由这些线

public function getTargets() 
{ 
    return self::CLASS_CONSTRAINT; 
} 

你让一个类约束至极意味着错误将显示在整个窗体的顶部,而不是该字段旁边的约束。

尝试将它定义为财产约束

public function getTargets() 
{ 
    return self::PROPERTY_CONSTRAINT; 
} 

如果这没有帮助,请发表您的验证定义和生成表单表单生成器代码。

相关问题