2011-08-25 59 views
0

在我的控制器init方法我有這個我怎麼建立一個ContextSwitch裏生成CSV文件

public function init() 
{ 
    //initialise the context switch action helper 
    $this->_helper->getHelper('contextSwitch') 
        ->addContext('csv', array('suffix' => 'csv', 
              'headers' => array(
               'Context-Type' => 'application/csv', 
               'Context-Disposition' => 'inline; filename="fooo.csv"', 
               'Pragma' => 'no-cache', 
               'Expires' => '0', 
              ))) 
        ->addActionContext('stockreport', 'csv') 
        ->initContext(); 
} 

在我stockreportAction我已經停用的佈局和視圖呈現如下。

public function stockreportAction() 
{ 
    $this->_helper->layout->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(); 

    echo 'foobar'; 
} 

我得到一個空白頁時,我把這個文件,我想產生這種所以這個例子「foobar的」顯示爲一個可下載的CSV文件。任何人都可以建議

回答

-3

Zend_Magic尚未實現。

您有責任生成csv或任何其他輸出格式。

簡而言之:上下文切換器修改視圖腳本後綴,因此您的上下文的視圖腳本是stockreport.csv.phtml(如果csv上下文處於活動狀態,則stockreport.phtml以其他方式)。
但在您的示例上下文切換器以錯誤的方式使用。你不要在這裏切換上下文。
您不使用腳本,您不檢查活動中的上下文是否處於活動狀態。

爲什麼你的輸出是空的是一個不同的問題 - 可能在某些時候你清除Response對象中的內容,或者在那裏有一個致命錯誤&錯誤輸出被禁用。

更新:
還標題是Content-TypeContent-Disposition

+4

可Zend_Smug了嗎? – user466764