2013-10-20 50 views
0

驗證表單並將其過濾的輸入傳遞到服務層,或將原始輸入傳遞到服務層並使服務驗證輸入(有或沒有一個表單實例)?將表單vs原始輸入傳遞到服務層

顯然,如果是後者,控制器仍然需要訪問表單,以便它可以發送到視圖進行呈現。如果是這樣,你會通過服務($ service-> getRegistrationForm())訪問表單嗎?

參見:

回答

0

本身應該處理驗證表單,ZF2對Form類啓用此方法。

在一個控制器上的操作需要某種形式的數據從我做的第一件事情之一是驗證表格($form->isValid())。如果表格無效,控制器會立即處理。通常情況下,這涉及到直接返回ViewModel的表單(現在包含數據+驗證結果),以便用戶可以看到任何驗證錯誤。

我不明白爲什麼你不打算進一步檢查,看看你是否有有效的數據或你知道的數據是無效的。事實上,這些數據甚至可能是惡意的(CSRF,它通過表單驗證來處理)。

基本上,傳遞raw和過濾輸入的問題從來沒有真正出現過。

+1

這就是我這樣做的方式。 GitHub上的[評論](https://github.com/zendframework/zf2/issues/5168#issuecomment-25693378)讓我想知道我是否做得對。我只想到在MVC上下文之外使用服務的情況,例如在Web服務中。在這種情況下,您將不得不復制過濾,驗證,訪問控制等,這是不理想的。也許我在過度思考事情......它總是在發生。 :-) – darkangel