2011-05-22 43 views
0

使用MVC架構(Zend Framework),您應該使用單個視圖和if語句來顯示/處理表單或多個視圖(即一個視圖顯示錶單,一個顯示結果)。zend框架顯示/進程形式使用相同的動作/視圖?

在這種情況下,我試圖製作一個谷歌搜索引擎。顯示搜索結果時頁面佈局將發生根本性變化。

例如;控制器:

public function indexAction() 
    { 
     if (!$this->getRequest()->isPost()) { 
      // display form 
     } else { 
      if ($this->_request->isPost()) { 
       if (!$form->isValid($formData)) { 
        // re-display form with errors 
       } else { 
        // process form and; 
        // display result using same action/view? 
        // display result using same action but use a different view? 
       } 
      } 
     } 
    } 

使用了同樣的觀點:

<?php if(isset($this->form)) : ?> 
    <!-- show form --> 
<?php else: ?> 
    <!-- show result --> 
<?php endif; ?> 

希望是有道理的。

+0

投票結束不是一個真正的問題。你已經考慮過這個問題,並且你有所有的工具來做出適合你需求的決定。你只是試圖將決定委託給SO用戶,這是行不通的,因爲一方會說一件事,另一件事則說。如果事實證明這是一個次優解決方案,重構,那麼以你認爲最好的方式進行。 – markus 2011-05-22 11:40:07

+0

@markus,我想這裏的回答並不簡單,但可能。這也包括如果。可能是這個問題應該被移動到程序員.S – gaRex 2011-05-22 13:17:04

+0

@markus「你應該用if語句來顯示/處理一個表單還是多個視圖」。雖然錯過了標點符號,但這聽起來像是一個問題!感謝那些提供了答案的人,單獨的觀點似乎是前進的方向。 – 2011-06-18 12:48:12

回答

1

不要陷入老式的單一編碼風格,其中一大塊代碼爲一個輸出頁面做所有事情。 MVC的全部內容是如此分離的責任。無論顯示哪個頁面/網址,都可以將視圖看作單個輸出的模板。表格是一個輸出。搜索結果是另一個。使用兩個視圖。

0

沒有問題的bug。我建議你在這裏使用更多不同的視圖,這可以重用一種形式。