我通常在一個動作中實例化我的表單,這是我在提交時處理它們的地方。然後,我將它們傳遞到視圖並像平常一樣輸出它們。zend_form:我應該在佈局中使用一個右側
此表單(搜索框)不同,因爲它不是單個頁面的一部分。它必須在任何地方都可見。我已經將它作爲模板layout.phtml
的一部分,並在那裏實例化並訪問它。
$search = new SearchForm();
echo $search;
表格打印出來的不錯,但現在的問題是我在哪裏處理此表單。我通常在動作中有這樣的處理代碼..
if ($this->_request->isPost()) {
//and form is valid
//process the data
}
但是由於此表單是通用的,因此沒有任何操作。我該如何處理?
我應該:
- 爲它創建一個假動作(這是沒有意義的,因爲形式是無處不在)
- 或者我應該把處理代碼對入layout.phtml(其我認爲是不好的MVC練習,因爲我現在正在混合處理表單和視圖)。
我該怎麼辦?對此有何建議?
你是否已將窗體instatiation放在視圖中?聽起來有點奇怪。也許插件是最好的方法。此外,你可以使用queryAction來創建一個searchController來處理...你有一個sigle結果頁面嗎? – 2010-10-10 07:01:54
*(相關)* [使用動作助手實現可重用廣告](http://weierophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html) – Gordon 2010-10-10 10:09:11