ZF2验证 - 如果另一个元素不为空,则需要字段

ise*_*ise 6 zend-framework2

我有在Zend Framework 2中进行自定义验证的经验(目前使用的是2.0.5版本).我有兴趣在"编辑个人资料"表单中创建更改密码部分.我想要做的是,有3个字段:

  • 当前密码,
  • 新密码,
  • 确认新密码.

然后我想验证如下:

  • 如果设置了新密码,则还必须设置(并验证)当前密码,并确认新密码应与新密码匹配.
  • 如果设置了当前密码,则还必须输入新密码并确认新密码.
  • 如果未设置,则允许编辑配置文件的其余部分,因此请继续验证.

我想你可以得到我所追求的东西,我正在寻找一种可重复使用的方法来使用Zend Framework 2.理想情况下,创建一个自定义验证器以便表格可以重复使用,我想我怀疑是工厂方法可能更好.任何事情,所以我不必在控制器/服务层检查它,并重复我自己想要使用它的地方.

亲切的问候,

ISE

And*_*rew -2

您可以添加自定义过滤器,但我认为这也可以使用验证组并单独验证输入组来完成。

您可以将密码字段添加到单独的组中,并且仅在主密码不为空时才验证该组。

http://framework.zend.com/manual/2.0/en/modules/zend.input-filter.intro.html

http://framework.zend.com/manual/2.0/en/modules/zend.form.collections.html#validation-groups-for-fieldsets-and-collection