我正在使用Zend框架,我想检查某些字段没有被提交为空或空。我应该在哪里做这个检查;模型还是控制器?MVC我应该在哪里验证我的数据?
注意,我没有使用Zend的形式,我编写了他们在HTML,我用走的内容:
$this->_getParam('inputName');
我将使用JS以检查在前端,但它很容易绕过JS所以我想要一些后端的东西。
我正在使用Zend框架,我想检查某些字段没有被提交为空或空。我应该在哪里做这个检查;模型还是控制器?MVC我应该在哪里验证我的数据?
注意,我没有使用Zend的形式,我编写了他们在HTML,我用走的内容:
$this->_getParam('inputName');
我将使用JS以检查在前端,但它很容易绕过JS所以我想要一些后端的东西。
我认为这取决于你如何设计你的应用程序。有时,在模型中验证数据非常重要,因为它依赖于业务逻辑,但如果您只是想检查一个值是否为空或者为空(并且可能注意到您的用户),那么在您的控制器中执行。
由于您已经手动编写了您的表格您可能需要使用Zend_Filter_Input
这将有助于验证和过滤您的输入。
$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值将无法通过此。 虽然我仍然建议使用适当的验证库。
你在说话,就好像客户端验证更重要,然后服务器端验证。危险。首先是全套的服务器端验证,然后是更多的服务器端验证以及更多...然后可能为了用户的方便进行一些客户端验证。 – markus 2011-03-19 20:53:32