Zend framework MVC我应该在哪里验证我的数据?

Zend framework MVC我应该在哪里验证我的数据?,zend-framework,validation,mv,Zend Framework,Validation,Mv,我正在使用Zend框架,我想检查某些字段是否没有以null或空的形式提交。我应该在哪里进行检查;模型还是控制器 注意,我没有使用Zend表单,我用HTML对它们进行编码,并使用以下方法获取内容: $this->_getParam('inputName'); 我将在前端使用js进行检查,但是绕过js很容易,所以我还需要一些后端的东西。我认为这实际上取决于您如何设计应用程序。有时,当模型中的数据依赖于业务逻辑时,验证模型中的数据非常重要,但如果您只想检查值是否为null或空(可能会注意到您的

我正在使用Zend框架,我想检查某些字段是否没有以null或空的形式提交。我应该在哪里进行检查;模型还是控制器

注意,我没有使用Zend表单,我用HTML对它们进行编码,并使用以下方法获取内容:

$this->_getParam('inputName');

我将在前端使用js进行检查,但是绕过js很容易,所以我还需要一些后端的东西。

我认为这实际上取决于您如何设计应用程序。有时,当模型中的数据依赖于业务逻辑时,验证模型中的数据非常重要,但如果您只想检查值是否为null或空(可能会注意到您的用户),那么就在控制器中进行验证

因为您是手工编写表单的,所以您可能希望使用它来帮助验证和过滤您的输入

$filters = array(
    'inputName' => 'StringTrim'
);

$validators = array(
    '*' => 'NotEmpty',
);

$inputFilter = new Zend_Filter_Input($filters, $validators);

$inputFilter->setData($this->getRequest()->getPost());

if ($inputFilter->isValid()) {
    echo 'Congratulations!';
} else {
    echo 'Too bad :(';
}

如果您只关心字符串是否为非空/非空,那么您只需执行以下操作:

if ($this->_getParam('inputName')) {
   echo 'input name is not null or empty';
}
注意:0的值不会传递此值。
尽管我仍然建议使用适当的验证库。

您的谈话似乎认为客户端验证比服务器端验证更重要。危险。首先是一套完整的服务器端验证,然后是更多的服务器端验证和一些其他。。。然后,为了方便用户,可能会进行一些客户端验证。