2011-03-29 111 views
1

嘿在Zend Framework中,我有一個名爲Days 的控制器,我有一個名爲sunday的操作。Zend Framework子目錄

因此,當我去我的網站:mywebsite.com/days/sunday/ - 這將使用我的默認index.phtml這很好。

現在我有另一個叫做goodmorning的phtml頁面,我希望它保留在週日的行動中。

,所以它讀取這樣的:
mywebsite.com/days/sunday/goodmorning/
mywebsite.com/days/sunday/goodafternoon/
mywebsite.com/days/sunday/night/

我怎麼做?

class daysController extends Zend_Controller_Action 

    { 

     public function sundayAction() 

     { 



     } 

    } 
+0

aby idea charles? – jayjay 2011-03-29 20:50:05

回答

2
class DaysController extends Zend_Controller_Action 
{ 
    public function sundayAction() 
    { 
     $params = getParams(); 
     switch ($params[0]) { 
      case 'goodmorning': 
       $partial = 'goodmorning'; 
       break; 
      case 'goodafternoon': 
       $partial = 'goodafternoon'; 
       break; 
      case 'night': 
      default: 
       $partial = 'night'; 
       break; 
     } 
     $this->_helper->viewRenderer($partial); 
    } 
} 

雖然,你應該使用http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.usage建立一個自定義路由。例如,days/:day/:greeting

+0

$ this-> render($ partial。'。phtml');是錯誤的,因爲它會直接在控制器中產生輸出,所以如果需要的話,將無法在Helpers或Plugins中的postDispatch動作中取消它。更多的足夠的同樣是使用以下內容: $ this - > _ helper-> viewRenderer-> setRender($ partial); – Ololo 2011-03-29 22:11:05

+0

感謝Ololo,我更正了你的更正答案。 – 2011-03-30 04:00:24

0

所以,當我去我的網站:mywebsite.com/days/sunday/ - 這將是使用我的默認index.phtml這很好。

錯誤,它會調用sunday.phtml意見映射與行動

但是,根據所涉及的參數,你既可以使用Zend_Controller_Action::render()方法或在您的視圖中使用$this->partial('goodmorning.phtml'),它可能有意義的是,你在所有觀點之間都有一些共同點,並且只想改變其餘部分。

您可能想要更準確地描述您想要做什麼,並且我們可能會建議您實際採用更好的方法。