2011-03-19 84 views
0

我正在使用Zend框架,我想检查某些字段没有被提交为空或空。我应该在哪里做这个检查;模型还是控制器?MVC我应该在哪里验证我的数据?

注意,我没有使用Zend的形式,我编写了他们在HTML,我用走的内容:

$this->_getParam('inputName'); 

我将使用JS以检查在前端,但它很容易绕过JS所以我想要一些后端的东西。

+0

你在说话,就好像客户端验证更重要,然后服务器端验证。危险。首先是全套的服务器端验证,然后是更多的服务器端验证以及更多...然后可能为了用户的方便进行一些客户端验证。 – markus 2011-03-19 20:53:32

回答

0

我认为这取决于你如何设计你的应用程序。有时,在模型中验证数据非常重要,因为它依赖于业务逻辑,但如果您只是想检查一个值是否为空或者为空(并且可能注意到您的用户),那么在您的控制器中执行。

由于您已经手动编写了您的表格您可能需要使用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 :('; 
} 
0

如果您所关心的是,如果你的字符串非空/非空,那么你可以简单地做:

if ($this->_getParam('inputName')) { 
    echo 'input name is not null or empty'; 
} 

注意:0值将无法通过此。 虽然我仍然建议使用适当的验证库。