在我的控制器init方法中,我有这个
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文件。任何人都可以提供建议
答案 0 :(得分:-3)
Zend_Magic尚未实施。
您有责任生成csv或任何其他输出格式。
简而言之:上下文切换器修改视图脚本后缀,因此您的上下文的查看脚本是stockreport.csv.phtml(如果csv上下文处于活动状态,否则为stockreport.phtml)。
但是在您的示例上下文切换器中以错误的方式使用。你不要在这里切换上下文
您不使用视图脚本,也不检查操作中的上下文是否处于活动状态。
为什么你的输出是空的是一个不同的问题 - 可能在某些时候你清除了Response对象中的内容,或者某处是致命错误&错误输出已禁用。
<强>更新强>
标题也是Content-Type
和Content-Disposition