Zend framework 需要Zend表单验证方面的帮助吗
目前我正在开发一个带有Zend框架的网站 我需要开发一个类似于此处的位置字段: 允许用户输入邮政编码值(由4个数字组成)或市郊名称 我现在陷入了Zend表单验证部分 基本上,我需要确保数据库中存在邮政编码值或郊区名称Zend framework 需要Zend表单验证方面的帮助吗,zend-framework,forms,Zend Framework,Forms,目前我正在开发一个带有Zend框架的网站 我需要开发一个类似于此处的位置字段: 允许用户输入邮政编码值(由4个数字组成)或市郊名称 我现在陷入了Zend表单验证部分 基本上,我需要确保数据库中存在邮政编码值或郊区名称 $validator = new Zend_Validate_Db_RecordExists('postcodeTable', 'postcode'); 我可以使用Zend\u Validate\u Db\u RecordExists轻松检查我的数据库中是否存在邮政编码 $val
$validator = new Zend_Validate_Db_RecordExists('postcodeTable', 'postcode');
我可以使用Zend\u Validate\u Db\u RecordExists
轻松检查我的数据库中是否存在邮政编码
$validator = new Zend_Validate_Db_RecordExists('postcodeTable', 'postcode');
但是,如何添加另一个郊区名称验证来检查数据库中是否存在郊区名称(而不与邮政编码验证检查冲突)
有没有一个清晰简单的方法来实现这一点
我是否需要编写自定义验证器?如果是,我怎么做
非常感谢:)我认为您不能像装饰程序那样使用别名验证程序,但您可以扩展Zend_Validate_Db_RecordExists,例如:
class App_Validate_Db_SuburbExists
extends Zend_Validate_Db_RecordExists
{
}
不要忘记将库的验证程序前缀XPath添加到元素中,例如
$element->addPrefixPath('App_Validate_Db', 'App/Validate/Db', 'validate');
然后,您可以添加两个具有不同选项的验证器
$element->addValidator(
new App_Validate_Db_SuburbExists('suburbTable', 'suburb'))
->addValidator(
new Zend_Validate_Db_RecordExists('postcodeTable', 'postcode'));
我想到的自定义验证器只是一个代理 像这样的
$proxyValidator = new App_Validate_Proxy(); //implements Zend_Validate_Interface
$proxyValidator->addValidator($validateDb1);
$proxyValidator->addValidator($validateDb2);
至少有一个子验证程序必须返回true以将值视为有效的
$proxyValidator::isValid():如果要添加验证器的具体实例,可能不需要设置前缀路径。但是如果您想延迟加载验证器,那么必须提供路径。