【问题标题】:Custom Validator doesn't output error message自定义验证器不输出错误消息
【发布时间】:2012-03-25 10:13:08
【问题描述】:

我安装了一个自定义验证器,用于检查生成的 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;
}

}

表单错误通过twig中的{{ form_rest(form) }}渲染

所以我发现了问题。 问题是自定义约束错误无法通过 foreach 呈现。他们必须通过

{{ form_errors(form) }}

我现在剩下的问题是:

1.) 如何像所有其他错误一样呈现自定义约束错误?

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

【问题讨论】:

  • 你找到答案了吗?

标签: symfony validation


【解决方案1】:

通过这些线

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

您将约束设置为类约束,这意味着错误将显示在整个表单的顶部,而不是字段旁边。

尝试将其定义为属性约束

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

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

【讨论】:

    猜你喜欢
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2016-12-04
    相关资源
    最近更新 更多