3

是否可以在错误消息中使用引用表单元素标签的变量?可以映射自定义变量,例如 %hostname% (在电子邮件验证器中),并且 %value% 也可用,但我也希望有表单标签。

我在 ZF 代码库中找不到它,但用例是 Zend_Validate_NotEmpty 可以返回如下消息:

"The field %label% is required and can't be empty"

代替:

 "Value is required and can't be empty"
4

2 回答 2

1

我认为如果不对验证器进行子类化,这是不可能的。这些Zend_Validate类不打算Zend_Form_Element仅用于。在%label%消息中包含 a 会在两个组件之间引入耦合。

一种可能的解决方案是通过扩展Zend_Validate_NotEmpty(或您正在使用的任何验证器)创建自定义验证器并将标签传递给构造函数。这样,您可以在每次实例化它时编写适当的消息。

编辑:

如果您按照上面的方法,您甚至可以定义自己的%label%“魔术变量”并将其附加到类的成员上。请参阅$_messageVariablesZend 框架文档中示例 #2 中的成员:编写验证器

希望有帮助...

于 2011-09-07T11:50:42.887 回答
0

我终于和装饰师一起去了。dinopmi 的解决方案是可能的,但是您需要始终注入标签。我的表单元素的错误装饰器现在将 %label% 替换为真实标签。

于 2011-10-16T09:17:32.540 回答