【问题标题】:Zend Framework validation: validate empty strings and do not validate null valuesZend Framework 验证:验证空字符串并且不验证空值
【发布时间】:2012-04-20 14:44:59
【问题描述】:

在我的控制器中,我有一些数据集,有些值无法从客户端发送(这不是我的逻辑错误),并且我没有修改数据库中的相应字段。但是如果该值为空字符串,我想抛出一个错误。

我如何使用标准验证器来做到这一点?

例子:

我有两个字段的表用户:用户名和密码。用户在他的个人资料中可以更改其中任何一个或两者。配置文件是用 ExtJS 4 编写的,代理配置了选项writeAllFields: false,因此客户端仅将修改后的字段发送到服务器。

在服务器端,例如,如果通过

找不到用户名
  • $this->_request->getPost('username')
  • $this->_getParam('username')

... 或其他东西(它为空),我不想验证它并在数据库中修改它。

但是如果用户在用户名字段中输入了一个空字符串,我想对其进行验证并向用户显示错误信息,例如“用户名不能为空”。

如何做到这一点?

【问题讨论】:

  • 给我们一个具体的例子,以便我们可以帮助你。
  • 听起来可能是 NotEmpty 验证器或 setRequired 是您正在寻找的。​​span>

标签: zend-framework zend-form zend-validate


【解决方案1】:

我个人会过滤输入然后验证它。但是为了实现你的目标,这可能会成功,它直接来自docs.

$valid = new Zend_Validate_NotEmpty();
$value  = '';
$result = $valid->isValid($value);
// returns false

如果您使用 Zend Form 创建表单,draw010 提到的内容适用。在这种情况下,如果没有提供输入,将元素本身的 setRequired() 验证器设置为 true 将向用户显示错误。如果您不使用Zend Form,那么以上内容应该为您指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2017-07-09
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多