0

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

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

例子:

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

在服务器端,例如,如果未通过以下方式找到用户名

  • $this->_request->getPost('username')
  • $this->_getParam('username')

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

但是,如果用户在用户名字段中键入了一个空字符串,我想验证它并向用户显示错误,其中包含“用户名不能为空”之类的文本。

如何实现?

4

1 回答 1

0

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

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

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

于 2012-04-23T21:23:07.760 回答