Zend Framework验证:验证空字符串并且不验证空值

时间:2012-04-20 14:44:59

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

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

如何使用标准验证器进行操作?

示例:

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

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

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

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

但是如果用户在用户名字段中键入空字符串,我想验证它并向用户显示错误,例如“用户名不能为空”。

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

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

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

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