问题标签 [zend-validate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1727 浏览

zend-framework - Zend Db_NoRecordExists - 检查多列

Zend Db_NoRecordExists 文档似乎仅限于检查一列。验证条目时有没有办法检查多个键?例如,我允许不同城市使用相同的电子邮件地址。

这是我当前的验证器:

usercities 表有两列: email varchar(64) city_id tinyint

我希望能够检查这些列的组合。这可能吗?我假设我必须创建一个自定义验证器。可以在不求助于自定义类的情况下完成吗?

谢谢!

王子

0 投票
1 回答
2874 浏览

php - 如何在 Zend 中验证多维数组?

我想知道使用Zend_Validatewith验证多维数组的最佳方法是什么Zend_FilterInput

这是我当前的代码:

我想在这里附加一个数组,例如name[]数组(发布一个具有两个/三个名称的数组)。

这是一个示例$_POST数组:

0 投票
7 回答
13979 浏览

php - Zend 表单编辑和 Zend_Validate_Db_NoRecordExists

我正在通过构建一些实用程序网站供我自己使用来慢慢提高我的 Zend 技能。我一直在使用 Zend 表单和表单验证,到目前为止,我很高兴我已经理解了 Zend 的做事方式。但是,我对如何在编辑表单和映射到必须唯一的数据库列的字段的上下文中使用 Zend_Validate_Db_NoRecordExists() 有点困惑。

例如使用这个简单的表

如果我只是向 Table Test 添加一个新行,我可以为 Data 字段的 Zend Form 元素添加一个验证器,如下所示:

在表单验证时,此验证器将检查 Data 元素的内容是否已存在于表中。因此,插入测试可以继续进行,而不会违反数据字段 UNIQUE 限定符。

但是,在编辑 Test 表的现有行时情况有所不同。在这种情况下,验证器需要检查元素值是否满足两个互斥条件之一:

  1. 用户已更改元素值,而新值当前不存在于表中。

  2. 用户更改元素值。因此,该值当前确实存在于表中(这没关系)。

Zend Validation Docs讨论了向 NoRecordExists() 验证器添加一个参数,以便从验证过程中排除记录。这个想法是“验证表以查找任何匹配的行,但忽略 a 字段具有此特定值的任何命中”。这样的用例是在编辑表格时验证元素所需要的。在 1.9 中执行此操作的伪代码是这样的(实际上我是从 1.9 源代码中得到的——我认为当前的文档可能是错误的):

问题是要排除的值 ($Value) 在实例化时绑定到验证器(也在实例化表单时)。但是当表单正在编辑记录时,当表单最初填充数据时,该值需要绑定到 $data 字段的内容 - 即最初从测试表行读取的数据值。但是在典型的 Zend 模式中,表单是在两个单独的步骤中实例化和填充的,这排除了将排除值绑定到所需的元素值。

以下 Zend 伪代码标记了我希望将 $Value 绑定到 NoRecordExists() 验证器的位置(请注意,这是常见的 Zend 控制器模式):

我可以继承 Zend_Form 并覆盖 populate() 方法,以便在初始表单填充时一次性插入 NoRecordExists() 验证器,但这对我来说似乎是一个巨大的黑客攻击。所以我想知道其他人的想法,是否有一些已经写下来的模式可以解决这个问题?

编辑 2009-02-04

我一直认为解决这个问题的唯一体面的方法是编写一个自定义验证器而忘记 Zend 版本。我的表单将记录 ID 作为隐藏字段,因此给定表名和列名,我可以制作一些 SQL 来测试唯一性并排除具有此类 ID 的行。当然,这让我开始思考如何将表单绑定到模型应该隐藏的 dB 层!

0 投票
3 回答
7413 浏览

php - 如何在 Zend Framework 表单中创建日期时间验证器?

默认情况下,Zend Framework 日期验证器使用日期格式yyyy-MM-dd

但我想添加小时和分钟验证。换句话说,我想要求用户输入小时和分钟。但以下不起作用:

如果我输入2010-02-01,我会收到一条错误消息,指出日期不符合格式。如果我输入2010-02-01 3,它不会抱怨。它所做的是假设用户的意思是2010-02-01 03:00而不是强制用户以给定格式输入日期。

如何强制必须以给定格式输入日期?

0 投票
3 回答
6498 浏览

zend-framework - 使用 Zend Framework 验证日期是否大于或等于今天的日期验证器

假设元素采用日期格式。如何确定给定的日期大于或等于今天?

0 投票
1 回答
187 浏览

zend-framework - Zend 框架验证器有问题

我遇到了不返回任何错误的自定义构建验证器的问题。我复制了一个文件 NotEmpty.php 表单文件夹library/Zend/Validate,将类 Zend_Validate_NotEmpty 重命名为 My_Validate_EmailConfirmation 并将其放入文件夹My/Validate

如果我将此类称为 ->setRequired(true)->addValidator('NotEmpty',true,array('messages' => array('isEmpty' => "bla"))); 我得到了正确的错误,但是如果我将其称为 ->setRequired(true)->addValidator('EmailConfirmation',true,array('messages' => array('isEmpty' => "bla")))- >addPrefixPath('My_Validate','My/Validate/','validate'); 我什么都得不到……

我究竟做错了什么?非常感谢您的回答...

0 投票
2 回答
431 浏览

php - Zend Form 验证器未触发

我正在尝试让我的 UniqueEmail 验证器工作,但似乎我的验证器从未被触发。

这是我的表格:

}

这是我的验证器

当我添加行

在我的 isValid() 函数的第一行,然后运行我的表单。然后代码只是运行,但似乎没有进入我的验证器。

我正在运行 zf 1.10.1 有什么想法/建议吗?

0 投票
1 回答
4384 浏览

php - 如何为带有自定义错误消息的 zend 表单元素编写自定义验证器?

我有一个包含允许字符列表的问题字段:AZ、0-9、冒号 (:)、问号 (?)、逗号 (,)、连字符 (-)、撇号 (')。我有正常工作的正则表达式,时尚:

默认错误消息类似于 ''' 与模式 '' 不匹配

我想写一条自定义错误消息,上面写着“此字段中不允许”

有没有一种简单的方法可以使用我缺少的现有 zend 组件来做到这一点?

编写自定义验证器是实现我想要实现的目标的唯一方法吗?如果是,我该如何编写自定义验证器(我查看了文档并且不太明白如何自定义错误消息)如果有任何其他方式,我也非常感谢该输入。

感谢您花时间回答这个问题!

0 投票
1 回答
335 浏览

php - 在 Zend Framework 上暂停文件验证

目前在我的应用程序中,我有一个表单,我要求用户上传一个图像文件以用作徽标。我想允许用户通过不提供文件(只需按下浏览器中的上传按钮)将其重置为空。

在这种情况下,唯一剩下的就是在不包含文件时暂停文件验证。目前我从Zend_Validate_File_Upload类中得到self::NO_FILE错误。

有没有办法暂停验证,以便在没有提供文件的情况下不检查任何内容?

0 投票
1 回答
593 浏览

php - 使用 symfony、教义或 zend_validate 验证输入数据?

我将 symfony 与教义和 zend 一起使用。

我想知道我是否想验证用户输入数据,我应该使用 symfony、zend 甚至是教义的验证吗?

我想我应该使用 symfony,但是有没有时候来自 zend 或教义的验证会更好?

谢谢