我正在使用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