我是Zend的新手,正在开发一个项目,需要三个上下文来执行特定操作。通常会使用标准上下文,AJAX调用的AJAX上下文,最后是打印友好的上下文。目标是让每个人都拥有自己的视图,因此使用的视图文件类似于:
/action_name.phtml /action_name.ajax.phtml /action_name.print.phtml
我看了http://framework.zend.com/manual/en/zend.controller.actionhelpers.html并提出了:
public function init()
{
// add any necessary context switching here
$contextSwitch = $this->_helper->getHelper('AjaxContext');
$contextSwitch->addActionContext('history', 'html')
->initContext();
//need to add another context for the print view
$this->_helper->getHelper('contextSwitch')->addActionContext('history','print')->initContext();
}
我确信前两行有效,但我不确定我是否以正确的方式处理打印上下文,因为在示例中第二个参数通常是文件类型,如JSON,XML,HTML等我是以正确的方式处理事情还是我应该做的其他事情?
答案 0 :(得分:2)
这是documentation中的所有内容。如果您想要自定义上下文,则必须先添加它们:
$this->_helper
->getHelper('contextSwitch')
->addContext('print', array(
// context options go here
))
->addActionContext('history', 'print')
// more addActionContext()s goes here
->initContext();
答案 1 :(得分:0)
您可能会做的不是使用打印视图的上下文,而是在/print/1
这样的网址中有一个参数。然后在控制器操作中,检查该参数是否为true,如果是,则渲染“print”视图脚本而不是常规视图脚本。