2011-03-19 68 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值將無法通過此。 雖然我仍然建議使用適當的驗證庫。