是否可以在错误消息中使用引用表单元素标签的变量?可以映射自定义变量,例如 %hostname% (在电子邮件验证器中),并且 %value% 也可用,但我也希望有表单标签。
我在 ZF 代码库中找不到它,但用例是 Zend_Validate_NotEmpty 可以返回如下消息:
"The field %label% is required and can't be empty"
代替:
"Value is required and can't be empty"
是否可以在错误消息中使用引用表单元素标签的变量?可以映射自定义变量,例如 %hostname% (在电子邮件验证器中),并且 %value% 也可用,但我也希望有表单标签。
我在 ZF 代码库中找不到它,但用例是 Zend_Validate_NotEmpty 可以返回如下消息:
"The field %label% is required and can't be empty"
代替:
"Value is required and can't be empty"
我认为如果不对验证器进行子类化,这是不可能的。这些Zend_Validate
类不打算Zend_Form_Element
仅用于。在%label%
消息中包含 a 会在两个组件之间引入耦合。
一种可能的解决方案是通过扩展Zend_Validate_NotEmpty
(或您正在使用的任何验证器)创建自定义验证器并将标签传递给构造函数。这样,您可以在每次实例化它时编写适当的消息。
编辑:
如果您按照上面的方法,您甚至可以定义自己的%label%
“魔术变量”并将其附加到类的成员上。请参阅$_messageVariables
Zend 框架文档中示例 #2 中的成员:编写验证器
希望有帮助...
我终于和装饰师一起去了。dinopmi 的解决方案是可能的,但是您需要始终注入标签。我的表单元素的错误装饰器现在将 %label% 替换为真实标签。