Zend Validate - 如何从不同的子表单传递上下文值?
我将一个表单分成 3 个子表单,对于其中一个元素,在最后一个子表单中,我创建了一个扩展 Zend_Validator_Abstract
的验证器。
该验证器需要检查第二个子表单上的值是否不为空。但是,该值不会出现在第三个子表单中元素的 $context
数组中。
使该值在子表单的 $context
中可用的合理方法是什么?
...
经过一番思考,我能想到的唯一方法是将父表单的引用传递给验证器的构造函数,尽管它破坏了封装。
I've split up a Form into 3 SubForms and for one of the elements, in the last SubForm, I am creating a Validator that extends Zend_Validator_Abstract
.
This validator needs to check that a value, on the second SubForm, is not empty. However this value will not be in the $context
array for the element in the Third SubForm.
What is a sensible way of making this value available in the $context
across SubForms?
...
After some thought, the only way I can think of doing this is to pass a reference of the parent Form to the Validator's constructor despite it breaking encapsulation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您还可以尝试重写表单对象 isValid() 方法并利用那里可用的 $data 变量。
例如:
You might also try overriding the form object isValid() method and utilizing the $data variable that is available there.
For example: